Index: /trunk/data/validator/addresses.mapcss
===================================================================
--- /trunk/data/validator/addresses.mapcss	(revision 11074)
+++ /trunk/data/validator/addresses.mapcss	(revision 11075)
@@ -1,3 +1,3 @@
-/* see #10232 */
+/* #10232 */
 way[addr:interpolation=odd] > node[addr:housenumber][get(split(".", tag("addr:housenumber")/2), 1)=0] {
     throwWarning: tr("Even housenumber in odd address interpolation.");
@@ -9,2 +9,18 @@
     throwOther: tr("Way with {0}. Tag each housenumber separately if possible.", "{0.key}");
 }
+
+/* #13752 */
+*[!addr:housenumber][addr:street][addr:housename=~/^[0-9]+[a-zA-Z]?$/] {
+    throwOther: tr("Object has no {0} however it has {1} and {2} whoose value looks like a housenumber.", "{0.key}", "{1.key}", "{2.key}");
+    assertMatch: "node addr:street=foo addr:housename=1";
+    assertMatch: "node addr:street=foo addr:housename=1a";
+    assertMatch: "node addr:street=foo addr:housename=221B";
+    assertNoMatch: "node addr:street=foo addr:housename=1 addr:housenumber=1";
+    assertNoMatch: "node addr:housename=1";
+    assertNoMatch: "node addr:street=foo addr:housename=bar";
+}
+*[addr:housenumber][addr:housename]["addr:housenumber"=*"addr:housename"] {
+    throwWarning: tr("Same value of {0} and {1}", "{0.key}", "{1.key}");
+    assertMatch: "node addr:housename=1 addr:housenumber=1";
+    assertNoMatch: "node addr:housename=1 addr:housenumber=2";
+}
