Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 7554)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 7555)
@@ -310,5 +310,5 @@
     private boolean showNames;
     private boolean showIcons;
-    private boolean  isOutlineOnly;
+    private boolean isOutlineOnly;
 
     private Font orderFont;
@@ -1499,5 +1499,5 @@
             if (n.isDisabled()) {
                 add(n, FLAG_DISABLED);
-            } else if (data.isSelected(n)) {
+            } else if (n.isSelected()) {
                 add(n, FLAG_SELECTED);
             } else if (n.isMemberOfSelected()) {
@@ -1512,5 +1512,5 @@
             if (w.isDisabled()) {
                 add(w, FLAG_DISABLED);
-            } else if (data.isSelected(w)) {
+            } else if (w.isSelected()) {
                 add(w, FLAG_SELECTED);
             } else if (w.isMemberOfSelected()) {
@@ -1525,6 +1525,8 @@
             if (r.isDisabled()) {
                 add(r, FLAG_DISABLED);
-            } else if (data.isSelected(r)) {
+            } else if (r.isSelected()) {
                 add(r, FLAG_SELECTED);
+            } else if (r.isMemberOfSelected()) {
+                add(r, FLAG_MEMBER_OF_SELECTED);
             } else {
                 add(r, FLAG_NORMAL);
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java	(revision 7554)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java	(revision 7555)
@@ -340,6 +340,8 @@
         if (isInactiveMode || r.isDisabled()) {
             col = inactiveColor;
-        } else if (ds.isSelected(r)) {
+        } else if (r.isSelected()) {
             col = selectedColor;
+        } else if (r.isMultipolygon() && r.isMemberOfSelected()) {
+            col = relationSelectedColor;
         } else {
             col = relationColor;
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java	(revision 7554)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java	(revision 7555)
@@ -87,13 +87,16 @@
     @Override
     public void paintPrimitive(OsmPrimitive osm, MapPaintSettings paintSettings, StyledMapRenderer painter, boolean selected, boolean member) {
+        Color myColor = color;
         if (osm instanceof Way) {
-            Color myColor = color;
-            if (color != null && osm.isSelected()) {
-                myColor = paintSettings.getSelectedColor(color.getAlpha());
+            if (color != null) {
+                if (selected) {
+                    myColor = paintSettings.getSelectedColor(color.getAlpha());
+                } else if (member) {
+                    myColor = paintSettings.getRelationSelectedColor(color.getAlpha());
+                }
             }
             painter.drawArea((Way) osm, myColor, fillImage, text);
         } else if (osm instanceof Relation) {
-            Color myColor = color;
-            if (color != null && selected) {
+            if (color != null && (selected || (member && ((Relation) osm).isMultipolygon()))) {
                 myColor = paintSettings.getRelationSelectedColor(color.getAlpha());
             }
