diff --git a/lib/versioning/maven/compare.js b/lib/versioning/maven/compare.js
index 9f1cee64532d744707a96f80a0f4ce44361f6757..1ce7fbeff4aefbb227bd392f2482fb0b6c96fcfe 100644
--- a/lib/versioning/maven/compare.js
+++ b/lib/versioning/maven/compare.js
@@ -89,12 +89,17 @@ const zeroToken = {
 function tokenize(versionStr) {
   let buf = [];
   let result = [];
+  let leadingZero = true;
   iterateTokens(versionStr.toLowerCase().replace(/^v/i, ''), token => {
     if (token.prefix === PREFIX_HYPHEN) {
       buf = [];
     }
     buf.push(token);
     if (!isNull(token)) {
+      leadingZero = false;
+      result = result.concat(buf);
+      buf = [];
+    } else if (leadingZero) {
       result = result.concat(buf);
       buf = [];
     }
diff --git a/test/versioning/maven.spec.js b/test/versioning/maven.spec.js
index 7bb146d83bd894e7fe761c7a144a9600947ba2ca..43e6caf11824eea4cde074195c61e81a5e28e69f 100644
--- a/test/versioning/maven.spec.js
+++ b/test/versioning/maven.spec.js
@@ -51,6 +51,9 @@ describe('versioning/maven/compare', () => {
     expect(compare('1-0-final', '1-0')).toEqual(0);
     expect(compare('1-0', '1.0')).toEqual(0);
     expect(compare('v1.2.3', '1.2.3')).toEqual(0);
+    expect(compare('0.0-1552', '0.0-1552')).toEqual(0);
+    expect(compare('v0.0-1552', '0.0-1552')).toEqual(0);
+    expect(compare('v0.0.1', '0.0.1')).toEqual(0);
   });
   it('returns less than', () => {
     expect(compare('1', '1.1')).toEqual(-1);
@@ -67,6 +70,8 @@ describe('versioning/maven/compare', () => {
     expect(compare('1-ga.1', '1-sp.1')).toEqual(-1);
     expect(compare('1-sp-1', '1-ga-1')).toEqual(-1);
     expect(compare('1-cr1', '1')).toEqual(-1);
+    expect(compare('0.0-1552', '1.10.520')).toEqual(-1);
+    expect(compare('0.0.1', '999')).toEqual(-1);
   });
   it('returns greater than', () => {
     expect(compare('1.1', '1')).toEqual(1);
@@ -83,6 +88,8 @@ describe('versioning/maven/compare', () => {
     expect(compare('1-sp.1', '1-ga.1')).toEqual(1);
     expect(compare('1-ga-1', '1-sp-1')).toEqual(1);
     expect(compare('1', '1-cr1')).toEqual(1);
+    expect(compare('1.10.520', '0.0-1552')).toEqual(1);
+    expect(compare('999', '0.0.1')).toEqual(1);
   });
 
   const invalidRanges = [