Index: /trunk/data/validator/geometry.mapcss
===================================================================
--- /trunk/data/validator/geometry.mapcss	(revision 6679)
+++ /trunk/data/validator/geometry.mapcss	(revision 6680)
@@ -34,2 +34,11 @@
   throwWarning: tr("{0} inside {1}", "amenity=parking", "amenity=parking");
 }
+
+/* see ticket #9556 */
+area:closed:areaStyle[tag("natural") = parent_tag("natural")] ⧉ area:closed:areaStyle[natural] {
+  throwWarning: tr("Overlapping Identical Natural Areas");
+}
+
+area:closed:areaStyle[tag("landuse") = parent_tag("landuse")] ⧉ area:closed:areaStyle[landuse] {
+  throwWarning: tr("Overlapping Identical Landuses");
+}
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java	(revision 6679)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java	(revision 6680)
@@ -254,4 +254,5 @@
 
             } else if (ChildOrParentSelectorType.CROSSING.equals(type) && e.osm instanceof Way) {
+                e.parent = e.osm;
                 final CrossingFinder crossingFinder = new CrossingFinder(e);
                 if (((GeneralSelector) right).matchesBase(OsmPrimitiveType.WAY)) {
