Index: trunk/resources/data/validator/combinations.mapcss
===================================================================
--- trunk/resources/data/validator/combinations.mapcss	(revision 17104)
+++ trunk/resources/data/validator/combinations.mapcss	(revision 17105)
@@ -854,2 +854,17 @@
   assertNoMatch: "way footway=sidewalk abandoned:highway=unclassified";
 }
+
+/* #17498 */
+way[bicycle][/^cycleway(:|$)/][!/^bicycle:/][bicycle=~/^(no|none|use_sidepath)$/][/^cycleway(:|$)/!~/^(no|none|separate)$/] {
+  throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}");
+  group: tr("suspicious tag combination");
+  assertMatch: "way bicycle=no cycleway=track";
+  assertMatch: "way bicycle=use_sidepath cycleway=lane";
+  assertMatch: "way bicycle=use_sidepath cycleway:left=lane";
+  assertNoMatch: "way bicycle=use_sidepath cycleway=no";
+  assertNoMatch: "way bicycle=use_sidepath bicycle:backward=yes cycleway:left=lane"; /* instead of :backward, could also be :forward or :conditional */
+  assertNoMatch: "way bicycle=no cycleway:right=no";
+  assertNoMatch: "way bicycle=use_sidepath cycleway:left=none";
+  assertNoMatch: "way highway=cycleway cycleway=separate";
+  assertNoMatch: "way highway=residential bicycle=use_sidepath";
+}
Index: trunk/resources/data/validator/geometry.mapcss
===================================================================
--- trunk/resources/data/validator/geometry.mapcss	(revision 17104)
+++ trunk/resources/data/validator/geometry.mapcss	(revision 17105)
@@ -145,5 +145,5 @@
 }
 way[building][building!=no] > node[!entrance].node_in_closed_highway {
-  set node_connects_highway_and_building; /* avoids duplicate warnings with folowing rule */
+  set node_connects_highway_and_building; /* avoids duplicate warnings with following rule */
   throwWarning: tr("node connects highway and building");
 }
