String.CaseInsensitiveComparator stupidly
initializes two indices to zero and increments both,
when only one index is needed.
--- /u/martin/ws/mustang/src/share/classes/java/lang/String.java	2006-06-12 09:57:08.229718000 -0700
+++ /u/martin/ws/process/src/share/classes/java/lang/String.java	2006-08-25 14:52:32.858262000 -0700
@@ -1215,10 +1215,12 @@
 	private static final long serialVersionUID = 8575799808933029326L;
 
         public int compare(String s1, String s2) {
-            int n1=s1.length(), n2=s2.length();
-            for (int i1=0, i2=0; i1<n1 && i2<n2; i1++, i2++) {
-                char c1 = s1.charAt(i1);
-                char c2 = s2.charAt(i2);
+	    int n1 = s1.length();
+	    int n2 = s2.length();
+	    int min = Math.min(n1, n2);
+	    for (int i = 0; i < min; i++) {
+		char c1 = s1.charAt(i);
+		char c2 = s2.charAt(i);
                 if (c1 != c2) {
                     c1 = Character.toUpperCase(c1);
                     c2 = Character.toUpperCase(c2);