Index: src/org/openstreetmap/josm/resources/data/validator/combinations.mapcss
===================================================================
--- src/org/openstreetmap/josm/resources/data/validator/combinations.mapcss    (revision 16258)
+++ src/org/openstreetmap/josm/resources/data/validator/combinations.mapcss    (working copy)
@@ -123,7 +123,7 @@
   group: tr("missing tag");
 }
 
-/* {0.tag} without {1.key} (warning level), #18411, #18246 */
+/* {0.tag} without {1.key} (warning level), #18411, #18246, #16898 */
 way[railway=construction][!construction],
 way[highway=construction][!construction],
 node[traffic_sign=maxspeed][!maxspeed],
@@ -143,7 +143,8 @@
 *[office=government][!government],
 *[power=generator][!generator:source],
 *[amenity=social_facility][!social_facility],
-*[amenity=place_of_worship][!religion] {
+*[amenity=place_of_worship][!religion],
+*[man_made=tower][!tower:type] {
   throwWarning: tr("{0} without {1}", "{0.tag}", "{1.key}");
   group: tr("missing tag");
 }
@@ -694,3 +695,13 @@
   throwWarning: tr("{0} without {1} or {2}", "{0.key}", "maxspeed", "maxspeed:*");
   group: tr("missing tag");
 }
\ No newline at end of file
+
+/* tower vs. communications_tower, #16898 */
+*[man_made=tower][tower:type=communication][material=concrete][height >= 100] {
+  throwWarning: tr("{0} together with {1}, {2} and {3} equal or greater 100. Consider using man_made=communications_tower instead", "{0.tag}", "{1.tag}", "{2.tag}", "{3.key}");
+  group: tr("suspicious tag combination");
+}
+*[man_made=communications_tower][height < 100] {
+  throwWarning: tr("{0} and {1} below 100. Consider using man_made=tower with tower:type=communication instead", "{0.tag}", "{1.key}");
+  group: tr("suspicious tag combination");
+}
