Index: trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java	(revision 9705)
+++ trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java	(revision 9706)
@@ -332,5 +332,5 @@
     }
 
-    private void formatRelationNameAndType(Relation relation, StringBuilder result, TaggingPreset preset) {
+    private StringBuilder formatRelationNameAndType(Relation relation, StringBuilder result, TaggingPreset preset) {
         if (preset == null) {
             result.append(getRelationTypeName(relation));
@@ -346,4 +346,5 @@
             result.append('(');
         }
+        return result;
     }
 
@@ -357,10 +358,8 @@
 
             if (preset1 != null || preset2 != null) {
-                StringBuilder name1 = new StringBuilder();
-                formatRelationNameAndType(r1, name1, preset1);
-                StringBuilder name2 = new StringBuilder();
-                formatRelationNameAndType(r2, name2, preset2);
-
-                int comp = AlphanumComparator.getInstance().compare(name1.toString(), name2.toString());
+                String name1 = formatRelationNameAndType(r1, new StringBuilder(), preset1).toString();
+                String name2 = formatRelationNameAndType(r2, new StringBuilder(), preset2).toString();
+
+                int comp = AlphanumComparator.getInstance().compare(name1, name2);
                 if (comp != 0)
                     return comp;
@@ -382,17 +381,14 @@
             }
 
-            if (r1.getMembersCount() != r2.getMembersCount())
-                return (r1.getMembersCount() > r2.getMembersCount()) ? 1 : -1;
-
-            int comp = Boolean.valueOf(r1.hasIncompleteMembers()).compareTo(Boolean.valueOf(r2.hasIncompleteMembers()));
+            int comp = Integer.compare(r1.getMembersCount(), r2.getMembersCount());
             if (comp != 0)
                 return comp;
 
-            if (r1.getUniqueId() > r2.getUniqueId())
-                return 1;
-            else if (r1.getUniqueId() < r2.getUniqueId())
-                return -1;
-            else
-                return 0;
+
+            comp = Boolean.compare(r1.hasIncompleteMembers(), r2.hasIncompleteMembers());
+            if (comp != 0)
+                return comp;
+
+            return Long.compare(r1.getUniqueId(), r2.getUniqueId());
         }
     };
