Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java	(revision 17744)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java	(revision 17745)
@@ -690,5 +690,11 @@
         @Override
         public boolean applies(Environment env) {
-            Cascade cascade = env.getCascade();
+            return Environment.DEFAULT_LAYER.equals(env.layer)
+                    ? applies(env, env.layer)
+                    : applies(env, env.layer) || applies(env, Environment.DEFAULT_LAYER);
+        }
+
+        private boolean applies(Environment env, String layer) {
+            Cascade cascade = env.getCascade(layer);
             return cascade != null && (not ^ cascade.containsKey(id));
         }
Index: /trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParserTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParserTest.java	(revision 17744)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParserTest.java	(revision 17745)
@@ -125,5 +125,5 @@
             "way[railway][bridge=yes]::bridges { z-index: 1; casting-width: 4; casing-color: #797979 }",
             "way[bridge=yes]::bridges { set .bridge }\nway[railway].bridge::bridges { z-index: 1; casting-width: 4; casing-color: #797979 }",
-            // FIXME "way[bridge=yes] { set .bridge }\nway[railway].bridge::bridges { z-index: 1; casting-width: 4; casing-color: #797979 }",
+            "way[bridge=yes] { set .bridge }\nway[railway].bridge::bridges { z-index: 1; casting-width: 4; casing-color: #797979 }",
     })
     void testLayerMatching(String cssString) {
