Index: trunk/src/org/openstreetmap/josm/gui/preferences/ColorPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/ColorPreference.java	(revision 1241)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/ColorPreference.java	(revision 1242)
@@ -18,4 +18,5 @@
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.TreeMap;
 import java.util.Vector;
@@ -68,19 +69,22 @@
         }
         // fill model with colors:
-        List<String> colorKeyList = new ArrayList<String>();
-        List<String> colorKeyList_mappaint = new ArrayList<String>();
+        Map<String, String> colorKeyList = new TreeMap<String, String>();
+        Map<String, String> colorKeyList_mappaint = new TreeMap<String, String>();
         for(String key : colorMap.keySet()) {
             if(key.startsWith("mappaint."))
-                colorKeyList_mappaint.add(key);
+                colorKeyList_mappaint.put(getName(key), key);
             else
-                colorKeyList.add(key);
+                colorKeyList.put(getName(key), key);
         }
-        Collections.sort(colorKeyList);
-        Collections.sort(colorKeyList_mappaint);
-        colorKeyList.addAll(colorKeyList_mappaint);
-        for (String key : colorKeyList) {
+        for (Entry k : colorKeyList.entrySet()) {
             Vector<Object> row = new Vector<Object>(2);
-            row.add(key);
-            row.add(ColorHelper.html2color(colorMap.get(key)));
+            row.add(k.getValue());
+            row.add(ColorHelper.html2color(colorMap.get(k.getValue())));
+            tableModel.addRow(row);
+        }
+        for (Entry k : colorKeyList_mappaint.entrySet()) {
+            Vector<Object> row = new Vector<Object>(2);
+            row.add(k.getValue());
+            row.add(ColorHelper.html2color(colorMap.get(k.getValue())));
             tableModel.addRow(row);
         }
@@ -106,4 +110,16 @@
     }
 
+    private String getName(String o)
+    {
+        try
+        {
+            Matcher m = Pattern.compile("mappaint\\.(.+?)\\.(.+)").matcher(o);
+            m.matches();
+            return tr("Paint style {0}: {1}", tr(m.group(1)), tr(m.group(2)));
+        }
+        catch (Exception e) {}
+        return tr(o);
+    }
+
     public void addGui(final PreferenceDialog gui) {
         fixColorPrefixes();
@@ -126,15 +142,4 @@
                 }
                 return oldColorsRenderer.getTableCellRendererComponent(t,getName(o.toString()),selected,focus,row,column);
-            }
-            private String getName(String o)
-            {
-                try
-                {
-                    Matcher m = Pattern.compile("mappaint\\.(.+?)\\.(.+)").matcher(o);
-                    m.matches();
-                    return tr("Paint style {0}: {1}", m.group(1), m.group(2));
-                }
-                catch (Exception e) {}
-                return tr(o);
             }
         });
