Index: trunk/src/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialog.java	(revision 7562)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialog.java	(revision 7563)
@@ -347,5 +347,5 @@
                     if (s.active) {
                         txtMappaint.append(tr("\n\n> applying {0} style \"{1}\"\n", getSort(s), s.getDisplayString()));
-                        s.apply(mc, osm, scale, null, false);
+                        s.apply(mc, osm, scale, false);
                         txtMappaint.append(tr("\nRange:{0}", mc.range));
                         for (Entry<String, Cascade> e : mc.getLayers()) {
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 7562)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 7563)
@@ -168,8 +168,8 @@
     private Pair<StyleList, Range> getImpl(OsmPrimitive osm, double scale, NavigatableComponent nc) {
         if (osm instanceof Node)
-            return generateStyles(osm, scale, null, false);
+            return generateStyles(osm, scale, false);
         else if (osm instanceof Way)
         {
-            Pair<StyleList, Range> p = generateStyles(osm, scale, null, false);
+            Pair<StyleList, Range> p = generateStyles(osm, scale, false);
 
             boolean isOuterWayOfSomeMP = false;
@@ -252,6 +252,5 @@
 
                 if (multipolygon.getInnerWays().contains(osm)) {
-                    Iterator<Way> it = multipolygon.getOuterWays().iterator();
-                    p = generateStyles(osm, scale, it.hasNext() ? it.next() : null, false);
+                    p = generateStyles(osm, scale, false);
                     boolean hasIndependentElemStyle = false;
                     for (ElemStyle s : p.a) {
@@ -282,5 +281,5 @@
         else if (osm instanceof Relation)
         {
-            Pair<StyleList, Range> p = generateStyles(osm, scale, null, true);
+            Pair<StyleList, Range> p = generateStyles(osm, scale, true);
             if (drawMultipolygon && ((Relation)osm).isMultipolygon()) {
                 if (!Utils.exists(p.a, AreaElemStyle.class)) {
@@ -288,5 +287,5 @@
                     Multipolygon multipolygon = MultipolygonCache.getInstance().get(nc, (Relation) osm);
                     for (Way w : multipolygon.getOuterWays()) {
-                        Pair<StyleList, Range> wayStyles = generateStyles(w, scale, null, false);
+                        Pair<StyleList, Range> wayStyles = generateStyles(w, scale, false);
                         p.b = Range.cut(p.b, wayStyles.b);
                         ElemStyle area = Utils.find(wayStyles.a, AreaElemStyle.class);
@@ -319,5 +318,5 @@
      * @return the generated styles and the valid range as a pair
      */
-    public Pair<StyleList, Range> generateStyles(OsmPrimitive osm, double scale, OsmPrimitive multipolyOuterWay, boolean pretendWayIsClosed) {
+    public Pair<StyleList, Range> generateStyles(OsmPrimitive osm, double scale, boolean pretendWayIsClosed) {
 
         List<ElemStyle> sl = new ArrayList<>();
@@ -327,5 +326,5 @@
         for (StyleSource s : styleSources) {
             if (s.active) {
-                s.apply(mc, osm, scale, multipolyOuterWay, pretendWayIsClosed);
+                s.apply(mc, osm, scale, pretendWayIsClosed);
             }
         }
@@ -402,5 +401,5 @@
         for (StyleSource s : styleSources) {
             if (s.active) {
-                s.apply(mc, r, 1, null, false);
+                s.apply(mc, r, 1, false);
             }
         }
@@ -451,5 +450,5 @@
             if (MapPaintStyles.getStyles() == null)
                 return null;
-            for (ElemStyle s : MapPaintStyles.getStyles().generateStyles(p, 1.0, null, pretendWayIsClosed).a) {
+            for (ElemStyle s : MapPaintStyles.getStyles().generateStyles(p, 1.0, pretendWayIsClosed).a) {
                 if (s instanceof AreaElemStyle)
                     return (AreaElemStyle) s;
@@ -484,5 +483,5 @@
             if (MapPaintStyles.getStyles() == null)
                 return false;
-            StyleList styles = MapPaintStyles.getStyles().generateStyles(p, 1.0, null, false).a;
+            StyleList styles = MapPaintStyles.getStyles().generateStyles(p, 1.0, false).a;
             if (styles.isEmpty()) {
                 return false;
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 7562)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 7563)
@@ -146,5 +146,5 @@
             MapCSSStyleSource.STYLE_SOURCE_LOCK.readLock().lock();
             try {
-                styleList = getStyles().generateStyles(virtualNode, 0.5, null, false).a;
+                styleList = getStyles().generateStyles(virtualNode, 0.5, false).a;
             } finally {
                 MapCSSStyleSource.STYLE_SOURCE_LOCK.readLock().unlock();
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/StyleSource.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/StyleSource.java	(revision 7562)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/StyleSource.java	(revision 7563)
@@ -77,5 +77,5 @@
      * outer ways of a multipolygon.
      */
-    public abstract void apply(MultiCascade mc, OsmPrimitive osm, double scale, OsmPrimitive multipolyOuterWay, boolean pretendWayIsClosed);
+    public abstract void apply(MultiCascade mc, OsmPrimitive osm, double scale, boolean pretendWayIsClosed);
 
     /**
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java	(revision 7562)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java	(revision 7563)
@@ -428,5 +428,5 @@
 
     @Override
-    public void apply(MultiCascade mc, OsmPrimitive osm, double scale, OsmPrimitive multipolyOuterWay, boolean pretendWayIsClosed) {
+    public void apply(MultiCascade mc, OsmPrimitive osm, double scale, boolean pretendWayIsClosed) {
         Environment env = new Environment(osm, mc, null, this);
         MapCSSRuleIndex matchingRuleIndex;
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/xml/XmlStyleSource.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/xml/XmlStyleSource.java	(revision 7562)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/xml/XmlStyleSource.java	(revision 7563)
@@ -301,5 +301,5 @@
 
     @Override
-    public void apply(MultiCascade mc, OsmPrimitive osm, double scale, OsmPrimitive multipolyOuterWay, boolean pretendWayIsClosed) {
+    public void apply(MultiCascade mc, OsmPrimitive osm, double scale, boolean pretendWayIsClosed) {
         Cascade def = mc.getOrCreateCascade("default");
         boolean useMinMaxScale = Main.pref.getBoolean("mappaint.zoomLevelDisplay", false);
@@ -367,11 +367,4 @@
                 }
             }
-            if (multipolyOuterWay != null) {
-                WayPrototypesRecord p2 = new WayPrototypesRecord();
-                get(multipolyOuterWay, true, p2, (useMinMaxScale ? scale : null), mc);
-                if (Objects.equals(p.area, p2.area)) {
-                    p.area = null;
-                }
-            }
             if (p.area != null) {
                 def.putOrClear(FILL_COLOR, p.area.color);
