Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 11774)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 11779)
@@ -441,5 +441,5 @@
      */
     public void drawArea(Relation r, Color color, MapImage fillImage, Float extent, Float extentThreshold, boolean disabled, TextLabel text) {
-        Multipolygon multipolygon = MultipolygonCache.getInstance().get(nc, r);
+        Multipolygon multipolygon = MultipolygonCache.getInstance().get(r);
         if (!r.isDisabled() && !multipolygon.getOuterWays().isEmpty()) {
             for (PolyData pd : multipolygon.getCombinedPolygons()) {
@@ -1129,5 +1129,5 @@
             consumer.accept(getPath((Way) osm));
         } else if (osm instanceof Relation) {
-            Multipolygon multipolygon = MultipolygonCache.getInstance().get(nc, (Relation) osm);
+            Multipolygon multipolygon = MultipolygonCache.getInstance().get((Relation) osm);
             if (!multipolygon.getOuterWays().isEmpty()) {
                 for (PolyData pd : multipolygon.getCombinedPolygons()) {
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 11774)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/MultipolygonCache.java	(revision 11779)
@@ -28,5 +28,4 @@
 import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.data.projection.ProjectionChangeListener;
-import org.openstreetmap.josm.gui.NavigatableComponent;
 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
 import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener;
@@ -43,5 +42,5 @@
     private static final MultipolygonCache INSTANCE = new MultipolygonCache();
 
-    private final Map<NavigatableComponent, Map<DataSet, Map<Relation, Multipolygon>>> cache;
+    private final Map<DataSet, Map<Relation, Multipolygon>> cache;
 
     private final Collection<PolyData> selectedPolyData;
@@ -65,31 +64,26 @@
     /**
      * Gets a multipolygon from cache.
-     * @param nc The navigatable component
      * @param r The multipolygon relation
      * @return A multipolygon object for the given relation, or {@code null}
-     */
-    public Multipolygon get(NavigatableComponent nc, Relation r) {
-        return get(nc, r, false);
+     * @since 11779
+     */
+    public Multipolygon get(Relation r) {
+        return get(r, false);
     }
 
     /**
      * Gets a multipolygon from cache.
-     * @param nc The navigatable component
      * @param r The multipolygon relation
      * @param forceRefresh if {@code true}, a new object will be created even of present in cache
      * @return A multipolygon object for the given relation, or {@code null}
-     */
-    public Multipolygon get(NavigatableComponent nc, Relation r, boolean forceRefresh) {
+     * @since 11779
+     */
+    public Multipolygon get(Relation r, boolean forceRefresh) {
         Multipolygon multipolygon = null;
-        if (nc != null && r != null) {
-            Map<DataSet, Map<Relation, Multipolygon>> map1 = cache.get(nc);
-            if (map1 == null) {
-                map1 = new ConcurrentHashMap<>();
-                cache.put(nc, map1);
-            }
-            Map<Relation, Multipolygon> map2 = map1.get(r.getDataSet());
+        if (r != null) {
+            Map<Relation, Multipolygon> map2 = cache.get(r.getDataSet());
             if (map2 == null) {
                 map2 = new ConcurrentHashMap<>();
-                map1.put(r.getDataSet(), map2);
+                cache.put(r.getDataSet(), map2);
             }
             multipolygon = map2.get(r);
@@ -108,24 +102,11 @@
 
     /**
-     * Clears the cache for the given navigatable component.
-     * @param nc the navigatable component
-     */
-    public void clear(NavigatableComponent nc) {
-        Map<DataSet, Map<Relation, Multipolygon>> map = cache.remove(nc);
-        if (map != null) {
-            map.clear();
-        }
-    }
-
-    /**
      * Clears the cache for the given dataset.
      * @param ds the data set
      */
     public void clear(DataSet ds) {
-        for (Map<DataSet, Map<Relation, Multipolygon>> map1 : cache.values()) {
-            Map<Relation, Multipolygon> map2 = map1.remove(ds);
-            if (map2 != null) {
-                map2.clear();
-            }
+        Map<Relation, Multipolygon> map2 = cache.remove(ds);
+        if (map2 != null) {
+            map2.clear();
         }
     }
@@ -140,9 +121,7 @@
     private Collection<Map<Relation, Multipolygon>> getMapsFor(DataSet ds) {
         List<Map<Relation, Multipolygon>> result = new ArrayList<>();
-        for (Map<DataSet, Map<Relation, Multipolygon>> map : cache.values()) {
-            Map<Relation, Multipolygon> map2 = map.get(ds);
-            if (map2 != null) {
-                result.add(map2);
-            }
+        Map<Relation, Multipolygon> map2 = cache.get(ds);
+        if (map2 != null) {
+            result.add(map2);
         }
         return result;
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java	(revision 11774)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java	(revision 11779)
@@ -9,5 +9,4 @@
 import java.util.List;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -29,4 +28,5 @@
 public class PowerLines extends Test {
 
+    /** Test identifier */
     protected static final int POWER_LINES = 2501;
 
@@ -106,5 +106,5 @@
                 nodesLists.add(((Way) station).getNodes());
             } else if (station instanceof Relation) {
-                Multipolygon polygon = MultipolygonCache.getInstance().get(Main.map.mapView, (Relation) station);
+                Multipolygon polygon = MultipolygonCache.getInstance().get((Relation) station);
                 if (polygon != null) {
                     for (JoinedWay outer : Multipolygon.joinWays(polygon.getOuterWays())) {
Index: trunk/src/org/openstreetmap/josm/gui/MapView.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 11774)
+++ trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 11779)
@@ -750,5 +750,5 @@
         Main.pref.removePreferenceChangeListener(this);
         DataSet.removeSelectionListener(repaintSelectionChangedListener);
-        MultipolygonCache.getInstance().clear(this);
+        MultipolygonCache.getInstance().clear();
         if (mapMover != null) {
             mapMover.destroy();
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 11774)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 11779)
@@ -88,4 +88,8 @@
     }
 
+    /**
+     * Returns the list of style sources.
+     * @return the list of style sources
+     */
     public List<StyleSource> getStyleSources() {
         return Collections.<StyleSource>unmodifiableList(styleSources);
@@ -218,5 +222,5 @@
                     continue;
                 }
-                Multipolygon multipolygon = MultipolygonCache.getInstance().get(nc, r);
+                Multipolygon multipolygon = MultipolygonCache.getInstance().get(r);
 
                 if (multipolygon.getOuterWays().contains(osm)) {
@@ -286,5 +290,5 @@
                     continue;
                 }
-                final Multipolygon multipolygon = MultipolygonCache.getInstance().get(nc, ref);
+                final Multipolygon multipolygon = MultipolygonCache.getInstance().get(ref);
 
                 if (multipolygon.getInnerWays().contains(osm)) {
@@ -320,5 +324,5 @@
                     && !Utils.exists(p.a, AreaElement.class) && Main.pref.getBoolean("multipolygon.deprecated.outerstyle", true)) {
                 // look at outer ways to find area style
-                Multipolygon multipolygon = MultipolygonCache.getInstance().get(nc, (Relation) osm);
+                Multipolygon multipolygon = MultipolygonCache.getInstance().get((Relation) osm);
                 for (Way w : multipolygon.getOuterWays()) {
                     Pair<StyleElementList, Range> wayStyles = generateStyles(w, scale, false);
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java	(revision 11774)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java	(revision 11779)
@@ -16,5 +16,4 @@
 import java.util.regex.PatternSyntaxException;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.search.SearchCompiler.InDataSourceArea;
 import org.openstreetmap.josm.data.osm.Node;
@@ -741,5 +740,5 @@
             return e.osm instanceof Relation && ((Relation) e.osm).isMultipolygon() &&
                     !e.osm.isIncomplete() && !((Relation) e.osm).hasIncompleteMembers() &&
-                    !MultipolygonCache.getInstance().get(Main.map.mapView, (Relation) e.osm).getOpenEnds().isEmpty();
+                    !MultipolygonCache.getInstance().get((Relation) e.osm).getOpenEnds().isEmpty();
         }
 
@@ -768,5 +767,5 @@
                 return true;
             if (e.osm instanceof Relation && ((Relation) e.osm).isMultipolygon())
-                return MultipolygonCache.getInstance().get(Main.map.mapView, (Relation) e.osm).getOpenEnds().isEmpty();
+                return MultipolygonCache.getInstance().get((Relation) e.osm).getOpenEnds().isEmpty();
             return false;
         }
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java	(revision 11774)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java	(revision 11779)
@@ -245,5 +245,5 @@
                 public void visit(Relation r) {
                     if (left.matches(e.withPrimitive(r))) {
-                        final List<Node> openEnds = MultipolygonCache.getInstance().get(Main.map.mapView, r).getOpenEnds();
+                        final List<Node> openEnds = MultipolygonCache.getInstance().get(r).getOpenEnds();
                         final int openEndIndex = openEnds.indexOf(e.osm);
                         if (openEndIndex >= 0) {
Index: trunk/src/org/openstreetmap/josm/tools/Geometry.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/Geometry.java	(revision 11774)
+++ trunk/src/org/openstreetmap/josm/tools/Geometry.java	(revision 11779)
@@ -533,5 +533,5 @@
         final Multipolygon mp = Main.map == null || Main.map.mapView == null
                 ? new Multipolygon(multipolygon)
-                : MultipolygonCache.getInstance().get(Main.map.mapView, multipolygon);
+                : MultipolygonCache.getInstance().get(multipolygon);
         Path2D path = new Path2D.Double();
         path.setWindingRule(Path2D.WIND_EVEN_ODD);
@@ -673,5 +673,5 @@
         final Multipolygon mp = Main.map == null || Main.map.mapView == null
                 ? new Multipolygon(multipolygon)
-                : MultipolygonCache.getInstance().get(Main.map.mapView, multipolygon);
+                : MultipolygonCache.getInstance().get(multipolygon);
         for (Multipolygon.PolyData pd : mp.getCombinedPolygons()) {
             area += pd.getAreaAndPerimeter(Projections.getProjectionByCode("EPSG:54008")).getArea();
