Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/MultipolygonCache.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/MultipolygonCache.java	(revision 4623)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/MultipolygonCache.java	(revision 4624)
@@ -7,4 +7,5 @@
 import java.util.Map;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
@@ -21,4 +22,6 @@
 import org.openstreetmap.josm.data.osm.event.TagsChangedEvent;
 import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent;
+import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.data.projection.ProjectionChangeListener;
 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
 import org.openstreetmap.josm.gui.NavigatableComponent;
@@ -31,5 +34,5 @@
  * 
  */
-public class MultipolygonCache implements DataSetListener, LayerChangeListener, ZoomChangeListener {
+public class MultipolygonCache implements DataSetListener, LayerChangeListener, ZoomChangeListener, ProjectionChangeListener {
 
     private static final MultipolygonCache instance = new MultipolygonCache(); 
@@ -39,4 +42,5 @@
     private MultipolygonCache() {
         this.cache = new HashMap<NavigatableComponent, Map<DataSet, Map<Relation,Multipolygon>>>();
+        Main.addProjectionChangeListener(this);
     }
 
@@ -206,3 +210,8 @@
         clear();
     }
+
+    @Override
+    public void projectionChanged(Projection oldValue, Projection newValue) {
+        clear();
+    }
 }
