Index: trunk/data/validator/deprecated.mapcss
===================================================================
--- trunk/data/validator/deprecated.mapcss	(revision 15695)
+++ trunk/data/validator/deprecated.mapcss	(revision 15715)
@@ -1879,2 +1879,10 @@
   group: tr("deprecated tagging");
 }
+
+/* #18571 */
+*[unnamed=yes] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "noname=yes";
+  fixChangeKey: "unnamed => noname";
+  group: tr("deprecated tagging");
+}
Index: trunk/data/validator/ignoretags.cfg
===================================================================
--- trunk/data/validator/ignoretags.cfg	(revision 15695)
+++ trunk/data/validator/ignoretags.cfg	(revision 15715)
@@ -72,4 +72,5 @@
 E:rcn_ref
 E:lcn_ref
+E:isced:level
 E:place_name
 E:cycleway
Index: trunk/data/validator/numeric.mapcss
===================================================================
--- trunk/data/validator/numeric.mapcss	(revision 15695)
+++ trunk/data/validator/numeric.mapcss	(revision 15715)
@@ -398,2 +398,15 @@
   assertMatch: "way aeroway=aerodrome icao=EQQQ";
 }
+
+/* #18573 */
+*[isced:level][isced:level !~ /^(0|1|2|3|4|5|6|7|8)((;|-)(1|2|3|4|5|6|7|8))*$/] {
+  throwWarning: tr("unusual value of {0}", "{0.key}");
+  assertMatch: "node isced:level=secondary";
+  assertMatch: "node isced:level=0,1,2,3";
+  assertMatch: "node isced:level=9";
+  assertMatch: "node isced:level=10";
+  assertNoMatch: "node isced:level=0;1;2;3";
+  assertNoMatch: "node isced:level=0";
+  assertNoMatch: "node isced:level=5";
+  assertNoMatch: "node isced:level=0-3";
+}
