Index: trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 16561)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 16562)
@@ -24,4 +24,7 @@
 import org.openstreetmap.josm.io.FileWatcher;
 import org.openstreetmap.josm.spi.preferences.Config;
+import org.openstreetmap.josm.spi.preferences.IPreferences;
+import org.openstreetmap.josm.spi.preferences.PreferenceChangeEvent;
+import org.openstreetmap.josm.spi.preferences.PreferenceChangedListener;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.ListenerList;
@@ -45,4 +48,22 @@
     private static final ListenerList<MapPaintSylesUpdateListener> listeners = ListenerList.createUnchecked();
 
+    private static final class MapPaintStylesPreferenceListener implements PreferenceChangedListener {
+        private final IPreferences pref;
+
+        MapPaintStylesPreferenceListener(IPreferences pref) {
+            this.pref = pref;
+        }
+
+        @Override
+        public void preferenceChanged(PreferenceChangeEvent e) {
+            if (e.getKey().contains("mappaint")) {
+                // We need to remove this from the listeners, so that we don't recursively call ourselves.
+                pref.removePreferenceChangeListener(this);
+                MapPaintStyles.readFromPreferences();
+                pref.addPreferenceChangeListener(this);
+            }
+        }
+    }
+
     static {
         listeners.addListener(new MapPaintSylesUpdateListener() {
@@ -57,4 +78,5 @@
             }
         });
+        Config.getPref().addPreferenceChangeListener(new MapPaintStylesPreferenceListener(Config.getPref()));
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java	(revision 16561)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java	(revision 16562)
@@ -391,16 +391,14 @@
     @Override
     public boolean ok() {
-        boolean ret = false;
         for (ColorEntry d : tableModel.getDeleted()) {
             d.toProperty().remove();
         }
         for (ColorEntry e : tableModel.getData()) {
-            if (e.info.getValue() != null && e.toProperty().put(e.info.getValue())
-                    && NamedColorProperty.COLOR_CATEGORY_MAPPAINT.equals(e.info.getCategory())) {
-                ret = true;
+            if (e.info.getValue() != null) {
+                e.toProperty().put(e.info.getValue());
             }
         }
         OsmDataLayer.createHatchTexture();
-        return ret;
+        return false;
     }
 
