Index: trunk/data/validator/combinations.mapcss
===================================================================
--- trunk/data/validator/combinations.mapcss	(revision 7871)
+++ trunk/data/validator/combinations.mapcss	(revision 7872)
@@ -202,6 +202,6 @@
 }
 
-/* any other *_name tag but not a name, see #10837 */
-*[/_name$/][!name] {
+/* any other *_name tag (except old_name, loc_name and uic_name) but not a name , see #10837 */
+*[/_name$/][!name][!old_name][!loc_name][!uic_name] {
   throwWarning: tr("alternative name without {0}", "{1.key}");
 }
Index: trunk/data/validator/numeric.mapcss
===================================================================
--- trunk/data/validator/numeric.mapcss	(revision 7871)
+++ trunk/data/validator/numeric.mapcss	(revision 7872)
@@ -140,2 +140,15 @@
   throwWarning: tr("{0} must be a numeric value", "{0.key}");
 }
+
+/* lanes* must be an integer positive number only, see #10837 */
+way[highway][lanes][lanes !~ /^[1-9]([0-9]*)$/],
+way[highway]["lanes:backward"]["lanes:backward" !~ /^[1-9]([0-9]*)$/],
+way[highway]["lanes:forward"]["lanes:forward" !~ /^[1-9]([0-9]*)$/] {
+  throwError: tr("{0} must be a positive integer number", "{1.key}");
+  assertMatch: "way lanes=-1";
+  assertMatch: "way lanes=5.5";
+  assertMatch: "way lanes=1;2";
+  assertMatch: "way lanes:forward=-1";
+  assertMatch: "way lanes:fobackward=-1";
+  assertNoMatch: "way lanes=1";
+}
