diff --git a/lib/versioning/maven/compare.ts b/lib/versioning/maven/compare.ts
index a06b0a1c91d9395fcc51b1670ea1d2ac4b490e9d..cf8d6c28a3833f34d45e9a266dcf2e39b4878b06 100644
--- a/lib/versioning/maven/compare.ts
+++ b/lib/versioning/maven/compare.ts
@@ -488,6 +488,12 @@ function autoExtendMavenRange(
   } else {
     interval.leftValue = newValue;
   }
+  if (interval.leftValue && interval.rightValue) {
+    if (compare(interval.leftValue, interval.rightValue) !== 1) {
+      return rangeToStr(range);
+    }
+    return currentRepresentation;
+  }
   return rangeToStr(range);
 }
 
diff --git a/lib/versioning/maven/index.spec.ts b/lib/versioning/maven/index.spec.ts
index 0a3604161cfc734cec7c2bdacc278211b8dc43de..b18cc1dda4af93f7cece8d4e933ad8c409bbb02b 100644
--- a/lib/versioning/maven/index.spec.ts
+++ b/lib/versioning/maven/index.spec.ts
@@ -251,6 +251,10 @@ describe('versioning/maven/compare', () => {
       ['[1.2.3,)', '1.2.4', '[1.2.4,)'],
       ['[1.2.3,[', '1.2.4', '[1.2.4,['],
       ['[1.2.3,]', '1.2.4', '[1.2.3,]'], // invalid range
+      ['[0.21,0.22)', '0.20.21', '[0.21,0.22)'],
+      ['[0.21,0.22)', '0.21.1', '[0.21,0.22)'],
+      ['[0.21,0.22)', '0.22.1', '[0.21,0.22.1)'],
+      ['[0.21,0.22)', '0.23', '[0.21,0.23)'],
     ];
     sample.forEach(([oldRepr, newValue, newRepr]) => {
       expect(autoExtendMavenRange(oldRepr, newValue)).toEqual(newRepr);