Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java	(revision 17036)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java	(revision 17037)
@@ -15,4 +15,5 @@
 import java.util.Map;
 import java.util.Objects;
+import java.util.Set;
 import java.util.function.IntFunction;
 import java.util.function.IntSupplier;
@@ -362,7 +363,7 @@
             @Override
             public void visit(Collection<? extends IPrimitive> primitives) {
-                List<? extends IPrimitive> toIgnore;
+                Set<? extends IPrimitive> toIgnore;
                 if (e.osm instanceof Relation) {
-                    toIgnore = ((IRelation<?>) e.osm).getMemberPrimitivesList();
+                    toIgnore = ((Relation) e.osm).getMemberPrimitives();
                 } else {
                     toIgnore = null;
@@ -373,4 +374,6 @@
                             && left.matches(new Environment(p).withParent(e.osm)) && isArea(p)
                             && (toIgnore == null || !toIgnore.contains(p))) {
+                        if (e.osm instanceof Way && ((Way)e.osm).referrers(Relation.class).anyMatch(ref -> ref == p))
+                            continue;
                         visitArea(p);
                     }
