Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintVisitor.java	(revision 3803)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintVisitor.java	(revision 3804)
@@ -523,5 +523,5 @@
 
     /* Shows areas before non-areas */
-    public void visitAll(DataSet data, boolean virtual, Bounds bounds) {
+    public void visitAll(final DataSet data, boolean virtual, Bounds bounds) {
         BBox bbox = new BBox(bounds);
         this.data = data;
@@ -634,5 +634,5 @@
                                         ((AreaElemStyle)style).getLineStyle().paintPrimitive(osm, paintSettings, painter, true, true);
                                     } else {
-                                        style.paintPrimitive(osm, paintSettings, painter, true, true);
+                                        style.paintPrimitive(osm, paintSettings, painter, data.isSelected(osm), true);
                                     }
                                 }
@@ -640,5 +640,5 @@
                                 {
                                     if(isZoomOk(style)) {
-                                        style.paintPrimitive(osm, paintSettings, painter, true, true);
+                                        style.paintPrimitive(osm, paintSettings, painter, data.isSelected(osm), true);
                                     }
                                 }
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPainter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPainter.java	(revision 3803)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPainter.java	(revision 3804)
@@ -207,8 +207,8 @@
             g.setFont(defaultFont);
         }
-        if (selected)
+        if (selected || member)
         {
-            g.setColor (  member ? relationSelectedColor : selectedColor );
-            g.drawRect (p.x-w/2-2, p.y-h/2-2, w+4, h+4);
+            g.setColor(selected? selectedColor : relationSelectedColor);
+            g.drawRect(p.x-w/2-2, p.y-h/2-2, w+4, h+4);
         }
     }
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/LineElemStyle.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/LineElemStyle.java	(revision 3803)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/LineElemStyle.java	(revision 3804)
@@ -181,5 +181,7 @@
             markColor = paintSettings.getHighlightColor();
         } else if (selected) {
-            markColor = member ? paintSettings.getRelationSelectedColor() : paintSettings.getSelectedColor();
+            markColor = paintSettings.getSelectedColor();
+        } else if (member) {
+            markColor = paintSettings.getRelationSelectedColor();
         } else if(w.isDisabled()) {
             markColor = paintSettings.getInactiveColor();
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/SimpleNodeElemStyle.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/SimpleNodeElemStyle.java	(revision 3803)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/SimpleNodeElemStyle.java	(revision 3804)
@@ -38,5 +38,7 @@
                 color = settings.getInactiveColor();
             } else if (selected) {
-                color = member ? settings.getRelationSelectedColor() : settings.getSelectedColor();
+                color = settings.getSelectedColor();
+            } else if (member) {
+                color = settings.getRelationSelectedColor();
             } else if (isConnection) {
                 if (n.isTagged()) {
