Index: trunk/data/validator/combinations.mapcss
===================================================================
--- trunk/data/validator/combinations.mapcss	(revision 15641)
+++ trunk/data/validator/combinations.mapcss	(revision 15648)
@@ -270,5 +270,8 @@
 }
 
-/* {0.tag} together with {1.tag}, see #17950, #17330, #17623, #17592, #17594, #17542, #16861, #16147, #10186 */
+/* {0.tag} together with {1.tag}, see #18411, #17950, #17330, #17623, #17592, #17594, #17542, #16861, #16147, #10186 */
+*[barrier=kerb][kerb=no],
+way[highway=construction][construction=yes],
+way[railway=construction][construction=yes],
 *[man_made=bridge][bridge=yes],
 *[man_made=tunnel][tunnel=yes],
@@ -649,2 +652,21 @@
   group: tr("suspicious tag combination");
 }
+
+/* #18374 */
+*[amenity=recycling][collection_times="24/7"][!opening_hours],
+*[amenity=recycling][collection_times       ][!opening_hours][collection_times=~/[a-z]-[A-Z].*[0-9]-[0-9]/] {
+  throwWarning: tr("{0} together with {1}. Probably {2} is meant.", "{1.key}", "{0.tag}", "{2.key}");
+  group: tr("suspicious tag combination");
+  fixChangeKey: "collection_times => opening_hours";
+  /* spaces in asserts are not yet supported
+  assertMatch: "node amenity=recycling collection_times=Mo-Fr 06:00-20:00";
+  assertNoMatch: "node amenity=recycling collection_times=Mo-Fr 15:00";
+  assertNoMatch: "node amenity=recycling collection_times=Mo 08:00-11:00";
+  assertNoMatch: "node amenity=recycling collection_times=Sa[2,4] 8:00-11:00";
+  */
+}
+*[amenity=recycling][collection_times="24/7"][opening_hours],
+*[amenity=recycling][collection_times       ][opening_hours][collection_times=~/[a-z]-[A-Z].*[0-9]-[0-9]/] {
+  throwWarning: tr("{0} together with {1}. Probably {2} is meant.", "{1.key}", "{0.tag}", "{2.key}");
+  group: tr("suspicious tag combination");
+}
Index: trunk/data/validator/deprecated.mapcss
===================================================================
--- trunk/data/validator/deprecated.mapcss	(revision 15641)
+++ trunk/data/validator/deprecated.mapcss	(revision 15648)
@@ -543,4 +543,5 @@
 
 /* see #11070 */
+*[kerb=unknown],
 *[lock=unknown],
 *[hide=unknown],
@@ -1069,8 +1070,10 @@
 }
 
+/* #18517 */
 *[office=administrative] {
   throwWarning: tr("{0} is deprecated", "{0.tag}");
-  group: tr("deprecated tagging");
   suggestAlternative: "office=government";
+  group: tr("deprecated tagging");
+  fixAdd: "office=government";
 }
 
@@ -1854,2 +1857,24 @@
   group: tr("deprecated tagging");
 }
+
+*[sloped_curb=yes][!kerb],
+*[sloped_curb=both][!kerb] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "kerb=lowered";
+  group: tr("deprecated tagging");
+  fixRemove: "sloped_curb";
+  fixAdd: "kerb=lowered";
+}
+*[sloped_curb=no][!kerb] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "kerb=yes";
+  group: tr("deprecated tagging");
+  fixRemove: "sloped_curb";
+  fixAdd: "kerb=yes";
+}
+*[sloped_curb][sloped_curb !~ /^(yes|both|no)$/][!kerb],
+*[sloped_curb][kerb] {
+  throwWarning: tr("{0} is deprecated", "{0.key}");
+  suggestAlternative: "kerb=*";
+  group: tr("deprecated tagging");
+}
Index: trunk/data/validator/highway.mapcss
===================================================================
--- trunk/data/validator/highway.mapcss	(revision 15641)
+++ trunk/data/validator/highway.mapcss	(revision 15648)
@@ -158,2 +158,8 @@
   fixAdd: "railway=level_crossing";
 }
+
+node[highway=crossing][barrier=kerb].is_in_major_road {
+  throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}");
+  suggestAlternative: "kerb=*";
+  group: tr("suspicious tag combination");
+}
