Index: trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 12945)
+++ trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 12946)
@@ -642,4 +642,6 @@
         for (final Entry<String, Setting<?>> e : defaultsMap.entrySet()) {
             if (e.getKey().startsWith(COLOR_PREFIX) && e.getValue() instanceof StringSetting) {
+                if (e.getKey().startsWith(COLOR_PREFIX+"layer."))
+                    continue; // do not add unchanged layer colors
                 StringSetting d = (StringSetting) e.getValue();
                 if (d.getValue() != null) {
Index: trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java	(revision 12945)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java	(revision 12946)
@@ -97,5 +97,5 @@
         Map<String, String> colorKeyListLayer = new TreeMap<>();
         for (String key : colorMap.keySet()) {
-            if (key.startsWith("layer ")) {
+            if (key.startsWith("layer.")) {
                 colorKeyListLayer.put(getName(key), key);
             } else if (key.startsWith("mappaint.")) {
@@ -251,5 +251,5 @@
 
     Boolean isRemoveColor(int row) {
-        return ((String) colors.getValueAt(row, 0)).startsWith("layer ");
+        return ((String) colors.getValueAt(row, 0)).startsWith("layer.");
     }
 
@@ -273,5 +273,5 @@
         boolean ret = false;
         for (String d : del) {
-            Config.getPref().put("color."+d, null);
+            Main.pref.putColor(d, null);
         }
         for (int i = 0; i < colors.getRowCount(); ++i) {
