Index: /trunk/resources/data/validator/combinations.mapcss
===================================================================
--- /trunk/resources/data/validator/combinations.mapcss	(revision 19272)
+++ /trunk/resources/data/validator/combinations.mapcss	(revision 19273)
@@ -1074,5 +1074,4 @@
   throwWarning: tr("{0} together with {1}", "{0.tag}", "{3.tag}");
   group: tr("suspicious tag combination");
-  assertMatch: "way cycleway:right=separate cycleway:right:buffer=yes";
   assertMatch: "way cycleway:left=shared_lane cycleway:buffer=no";
   assertMatch: "way cycleway:both=track cycleway:left:buffer=yes";
Index: /trunk/resources/data/validator/highway.mapcss
===================================================================
--- /trunk/resources/data/validator/highway.mapcss	(revision 19272)
+++ /trunk/resources/data/validator/highway.mapcss	(revision 19273)
@@ -92,14 +92,12 @@
 way[highway=cycleway][cycleway=lane] {
   throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}");
+  assertMatch: "way highway=cycleway cycleway=lane";
+  assertMatch: "way highway=footway maxspeed=20";
   assertNoMatch: "way highway=cycleway bicycle=yes";
   assertNoMatch: "way highway=cycleway";
   assertNoMatch: "way highway=footway foot=yes";
   assertNoMatch: "way highway=footway";
-  assertMatch: "way highway=cycleway cycleway=lane";
-  assertNoMatch: "way highway=cycleway";
   assertNoMatch: "way highway=residential cycleway=lane";
-  assertMatch: "way highway=footway maxspeed=20";
   assertNoMatch: "way highway=residential maxspeed=20";
-  assertNoMatch: "way highway=footway";
 }
 
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagCheckerRule.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagCheckerRule.java	(revision 19272)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagCheckerRule.java	(revision 19273)
@@ -151,7 +151,7 @@
                     } else if (val != null && "suggestAlternative".equals(ai.key)) {
                         check.alternatives.add(val);
-                    } else if (val != null && "assertMatch".equals(ai.key)) {
+                    } else if (val != null && "assertMatch".equals(ai.key) && !assertions.containsKey(val)) {
                         assertions.put(val, Boolean.TRUE);
-                    } else if (val != null && "assertNoMatch".equals(ai.key)) {
+                    } else if (val != null && "assertNoMatch".equals(ai.key) && !assertions.containsKey(val)) {
                         assertions.put(val, Boolean.FALSE);
                     } else if (val != null && "group".equals(ai.key)) {
