Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintVisitor.java	(revision 3328)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintVisitor.java	(revision 3329)
@@ -373,13 +373,14 @@
         ElemStyle wayStyle = getPrimitiveStyle(r, false);
 
+        boolean disabled = r.isDisabled();
         // If area style was not found for relation then use style of ways
         if(styles != null && !(wayStyle instanceof AreaElemStyle)) {
             for (Way w : multipolygon.getOuterWays()) {
                 wayStyle = styles.getArea(w);
+                disabled = disabled || w.isDisabled();
                 if(wayStyle != null) {
                     break;
                 }
             }
-            r.mappaintStyle = wayStyle;
         }
 
@@ -390,5 +391,5 @@
             drawn = true;
 
-            if(zoomok && !multipolygon.getOuterWays().isEmpty()) {
+            if(zoomok && !disabled && !multipolygon.getOuterWays().isEmpty()) {
                 AreaElemStyle areaStyle = (AreaElemStyle)wayStyle;
                 for (PolyData pd : multipolygon.getCombinedPolygons()) {
@@ -410,5 +411,5 @@
                 ElemStyle innerStyle = getPrimitiveStyle(wInner, true);
                 if(innerStyle == null) {
-                    if (data.isSelected(wInner))
+                    if (data.isSelected(wInner) || disabled)
                         continue;
                     if(zoomok && (wInner.mappaintDrawnCode != paintid || multipolygon.getOuterWays().isEmpty())) {
