Index: trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 3463)
+++ trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 3466)
@@ -305,5 +305,5 @@
        get/set functions calling this implicitely is preferred, so we can have
        transparent cache handling in the future. */
-    protected void clearCached()
+    public void clearCached()
     {
         mappaintDrawnCode = 0;
Index: trunk/src/org/openstreetmap/josm/gui/preferences/MapPaintPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/MapPaintPreference.java	(revision 3463)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/MapPaintPreference.java	(revision 3466)
@@ -17,4 +17,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
 import org.openstreetmap.josm.tools.GBC;
@@ -90,5 +91,11 @@
             restart = true;
         }
-        Main.pref.put("mappaint.style", styleCombo.getEditor().getItem().toString());
+        if(Main.pref.put("mappaint.style", styleCombo.getEditor().getItem().toString()))
+        {
+          for(OsmPrimitive osm : Main.main.getCurrentDataSet().allPrimitives())
+          {
+            osm.clearCached();
+          }
+        }
         return restart;
     }
