Index: trunk/resources/data/defaultpresets.xml
===================================================================
--- trunk/resources/data/defaultpresets.xml	(revision 18730)
+++ trunk/resources/data/defaultpresets.xml	(revision 18731)
@@ -6011,5 +6011,5 @@
             <optional>
                 <combo key="avalanche_protection" values="snow_bridge,dam,berm,mound,shed,gas_ignition" />
-                <check key="barrier" value="fence" />
+                <check key="barrier" value_on="fence" />
             </optional>
         </item> <!-- Avalanche Protection -->
Index: trunk/resources/data/validator/combinations.mapcss
===================================================================
--- trunk/resources/data/validator/combinations.mapcss	(revision 18730)
+++ trunk/resources/data/validator/combinations.mapcss	(revision 18731)
@@ -48,4 +48,6 @@
 way[canal                      ][!waterway],
 way[have_riverbank             ][!waterway],
+area[min_height                ][!height][/^(building|building:part)$/], /* #21286 */
+area[building:min_level        ][!building:levels][/^(building|building:part)$/], /* #21286 */
 *[border_type                  ][!boundary],
 *[piste:difficulty             ][!piste:type],
@@ -1077,2 +1079,10 @@
   group: tr("suspicious tag combination");
 }
+
+/* #21286 */
+area[/^(building|building:part)$/][height =~ /^[0-9]+(\.[0-9]+)?( m)?$/][min_height =~ /^[0-9]+(\.[0-9]+)?( m)?$/][get(split(" ", tag(height)), 0) <= get(split(" ", tag(min_height)), 0)],
+area[/^(building|building:part)$/][building:levels][building:min_level][tag("building:levels") <= tag("building:min_level")] {
+  throwWarning: tr("{0} is lower or equal to {1} on {2}", "{1.key}", "{2.key}", "{0.key}");
+  group: tr("suspicious tag combination");
+}
+
Index: trunk/resources/data/validator/ignoretags.cfg
===================================================================
--- trunk/resources/data/validator/ignoretags.cfg	(revision 18730)
+++ trunk/resources/data/validator/ignoretags.cfg	(revision 18731)
@@ -769,5 +769,5 @@
 K:historic=bomb_crater
 ; May be duplicate of older tagging, `hiking=yes` + `bicycle=yes` versus `guidepost=hiking;bicycle`
-K:guidepost
+E:guidepost
 K:indoor=area
 K:indoor=corridor
Index: trunk/resources/data/validator/numeric.mapcss
===================================================================
--- trunk/resources/data/validator/numeric.mapcss	(revision 18730)
+++ trunk/resources/data/validator/numeric.mapcss	(revision 18731)
@@ -298,4 +298,32 @@
   assertNoMatch: "node width=10'5\"";
   assertNoMatch: "node width=10'";
+}
+
+*[min_height][min_height =~ /^-?[0-9]+(\.[0-9]+)?(( )*(metre|metres|meter|meters|Metre|Metres|Meter|Meters)|m)$/] {
+  throwWarning: tr("unusual value of {0}: use abbreviation for unit and space between value and unit", "{0.key}");
+  fixAdd: concat("min_height=", get(regexp_match("(-?[0-9.]+)( )*(.+)",tag("min_height")),1)," m");
+  set min_height_meter_autofix;
+  assertMatch: "node min_height=6.78 meters";
+  assertMatch: "node min_height=5  metre";
+  assertMatch: "node min_height=2m";
+  assertNoMatch: "node min_height=2 m";
+  assertNoMatch: "node min_height=5";
+}
+*[min_height][min_height =~ /^-?[0-9]+,[0-9][0-9]?( m|\')?$/] {
+  throwWarning: tr("unusual value of {0}: use . instead of , as decimal separator", "{0.key}");
+  fixAdd: concat("min_height=", replace(tag("min_height"), ",", "."));
+  set min_height_separator_autofix;
+  assertMatch: "node min_height=5,5";
+  assertMatch: "node min_height=12,00";
+  assertMatch: "node min_height=12,5'";
+  assertNoMatch: "node min_height=12,000";
+  assertNoMatch: "node min_height=3,50,5";
+  assertNoMatch: "node min_height=3.5";
+  assertNoMatch: "node min_height=4";
+}
+*[min_height ][min_height  !~ /^(-?([0-9]+(\.[0-9]+)?( m)?)|(-?[1-9][0-9]*\'((10|11|[0-9])((\.[0-9]+)?)\")?))$/]!.min_height_separator_autofix!.min_height_meter_autofix!.min_height_foot_autofix {
+  throwWarning: tr("unusual value of {0}: {1} is default; point is decimal separator; if units, put space then unit", "{0.key}", tr("meters"));
+  assertMatch: "node min_height=\"12. m\"";
+  assertNoMatch: "node min_height=-5";
 }
 
