diff --git a/lib/workers/repository/process/lookup/index.ts b/lib/workers/repository/process/lookup/index.ts
index a08a066f1329bf0c1d0c3e47ed54e3f4460a1ee8..65a99847fe02771f9c6966d71c093648c381410d 100644
--- a/lib/workers/repository/process/lookup/index.ts
+++ b/lib/workers/repository/process/lookup/index.ts
@@ -302,8 +302,7 @@ export async function lookupUpdates(
     if (vulnerabilityAlert) {
       filteredVersions = filteredVersions.slice(0, 1);
     }
-    const buckets: Record<string, LookupUpdate> = {};
-    const allBucketUpdates: Record<string, [LookupUpdate]> = {};
+    const buckets: Record<string, [LookupUpdate]> = {};
     for (const toVersion of filteredVersions.map((v) => v.version)) {
       const update: LookupUpdate = { fromVersion, toVersion } as any;
       try {
@@ -363,30 +362,23 @@ export async function lookupUpdates(
 
       const bucket = getBucket(config, update);
       if (buckets[bucket]) {
-        if (
-          version.isGreaterThan(update.toVersion, buckets[bucket].toVersion)
-        ) {
-          buckets[bucket] = update;
-        }
-      } else {
-        buckets[bucket] = update;
-      }
-      if (allBucketUpdates[bucket]) {
-        allBucketUpdates[bucket].push(update);
+        buckets[bucket].push(update);
       } else {
-        allBucketUpdates[bucket] = [update];
+        buckets[bucket] = [update];
       }
     }
-    for (const [bucket, update] of Object.entries(buckets)) {
-      update.skippedOverVersions = allBucketUpdates[bucket]
-        .map((u) => u.toVersion)
-        .filter((u) => u !== update.toVersion)
-        .sort((v1, v2) => version.sortVersions(v1, v2));
-      if (update.skippedOverVersions.length === 0) {
-        delete update.skippedOverVersions;
+    for (const updates of Object.values(buckets)) {
+      const sortedUpdates = updates.sort((u1, u2) =>
+        version.sortVersions(u1.toVersion, u2.toVersion)
+      );
+      const highestUpdate = sortedUpdates.pop();
+      if (sortedUpdates.length) {
+        highestUpdate.skippedOverVersions = sortedUpdates.map(
+          (u) => u.toVersion
+        );
       }
+      res.updates.push(highestUpdate);
     }
-    res.updates = res.updates.concat(Object.values(buckets));
   } else if (!currentValue) {
     res.skipReason = SkipReason.UnsupportedValue;
   } else {