diff --git a/lib/modules/manager/bun/readme.md b/lib/modules/manager/bun/readme.md
index 0fa2f420f7fb95db97e16f2a57a55f4e0a987909..807c7f8435ef33b378dfefebacf7943b468e40f4 100644
--- a/lib/modules/manager/bun/readme.md
+++ b/lib/modules/manager/bun/readme.md
@@ -1,5 +1,4 @@
 Used for updating bun projects.
 Bun is a tool for JavaScript projects and therefore an alternative to managers like npm, pnpm and Yarn.
 
-If a `package.json` is found to be part of `bun` manager results then the same file will be excluded from the `npm` manager results so that it's not duplicated.
-This means that supporting a `bun.lockb` file in addition to other JS lock files is not supported - Bun will take priority.
+If a `package.json` is found to be part of `bun` manager results then the same file will be excluded from the `npm` manager results unless an npm/pnpm/Yarn lock file is also found.
diff --git a/lib/workers/repository/extract/supersedes.spec.ts b/lib/workers/repository/extract/supersedes.spec.ts
index 247b74e52a067857befb65d6ad0b787540abc6ba..a71e4117ea98237e03ff066d7f2978a3673d3c5d 100644
--- a/lib/workers/repository/extract/supersedes.spec.ts
+++ b/lib/workers/repository/extract/supersedes.spec.ts
@@ -14,13 +14,21 @@ describe('workers/repository/extract/supersedes', () => {
         { manager: 'ansible' },
         {
           manager: 'bun',
-          packageFiles: [{ packageFile: 'package.json', deps: [] }],
+          packageFiles: [
+            { packageFile: 'package.json', deps: [] },
+            { packageFile: 'frontend/package.json', deps: [] },
+          ],
         },
         {
           manager: 'npm',
           packageFiles: [
             { packageFile: 'package.json', deps: [] },
             { packageFile: 'backend/package.json', deps: [] },
+            {
+              packageFile: 'frontend/package.json',
+              deps: [],
+              lockFiles: ['frontend/yarn.lock'],
+            },
           ],
         },
       ];
@@ -34,11 +42,22 @@ describe('workers/repository/extract/supersedes', () => {
               deps: [],
               packageFile: 'package.json',
             },
+            {
+              deps: [],
+              packageFile: 'frontend/package.json',
+            },
           ],
         },
         {
           manager: 'npm',
-          packageFiles: [{ deps: [], packageFile: 'backend/package.json' }],
+          packageFiles: [
+            { deps: [], packageFile: 'backend/package.json' },
+            {
+              deps: [],
+              lockFiles: ['frontend/yarn.lock'],
+              packageFile: 'frontend/package.json',
+            },
+          ],
         },
       ]);
     });
diff --git a/lib/workers/repository/extract/supersedes.ts b/lib/workers/repository/extract/supersedes.ts
index 560d6bb0c50d65d460638c18130d4b60dbac4567..a0b322f9025bf047aafeff93784b6d3e10f6a79a 100644
--- a/lib/workers/repository/extract/supersedes.ts
+++ b/lib/workers/repository/extract/supersedes.ts
@@ -22,6 +22,7 @@ export function processSupersedesManagers(
           supercededManagerResults.packageFiles =
             supercededManagerResults.packageFiles.filter((packageFile) => {
               if (
+                !packageFile.lockFiles?.length &&
                 supercedingPackageFileNames.includes(packageFile.packageFile)
               ) {
                 return false;