diff --git a/icu4j/main/classes/core/src/com/ibm/icu/util/VersionInfo.java b/icu4j/main/classes/core/src/com/ibm/icu/util/VersionInfo.java
index 7e11f45..72fd079 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/util/VersionInfo.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/util/VersionInfo.java
@@ -471,7 +471,15 @@ public int hashCode() {
     @Override
     public int compareTo(VersionInfo other)
     {
-        return m_version_ - other.m_version_;
+        // m_version_ is an int, a signed 32-bit integer.
+        // When the major version is >=128, then the version int is negative.
+        // Compare it in two steps to simulate an unsigned-int comparison.
+        // (Alternatively we could turn each int into a long and reset the upper 32 bits.)
+        // Compare the upper bits first, using logical shift right (unsigned).
+        int diff = (m_version_ >>> 1) - (other.m_version_ >>> 1);
+        if (diff != 0) { return diff; }
+        // Compare the remaining bits.
+        return (m_version_ & 1) - (other.m_version_ & 1);
     }
 
     // private data members ----------------------------------------------
diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/util/VersionInfoTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/util/VersionInfoTest.java
index dcfe199..1577793 100644
--- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/util/VersionInfoTest.java
+++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/util/VersionInfoTest.java
@@ -138,6 +138,18 @@ public void TestCompare()
         }
     }
 
+    @Test
+    public void TestCompareLarge() {
+        // One version with major<128, one >=128.
+        VersionInfo small = VersionInfo.getInstance(13);
+        VersionInfo large = VersionInfo.getInstance(222);  // >=128
+        assertTrue(small + " < " + large, small.compareTo(large) < 0);
+        // Difference only in the last bit.
+        small = VersionInfo.getInstance(222, 0, 1, 2);
+        large = VersionInfo.getInstance(222, 0, 1, 3);
+        assertTrue(small + " < " + large, small.compareTo(large) < 0);
+    }
+
     /**
      * Test that the getter function works
      */
