Index: /trunk/resources/data/defaultpresets.xml
===================================================================
--- /trunk/resources/data/defaultpresets.xml	(revision 19590)
+++ /trunk/resources/data/defaultpresets.xml	(revision 19591)
@@ -470,5 +470,5 @@
     </chunk>
     <chunk id="utilities">
-        <combo key="utility" text="Utility" values="chemical,gas,heating,hydrant,oil,power,sewerage,street_lighting,telecom,television,waste,water" values_searchable="true"/>
+        <combo key="utility" text="Utility" values="chemical,gas,heating,oil,power,sewerage,street_lighting,telecom,television,waste,water" values_searchable="true"/>
     </chunk>
     <chunk id="pole">
@@ -5018,4 +5018,19 @@
                 </optional>
         </item> <!-- Fire Hydrant -->
+        <item name="Hydrant marker" icon="presets/misc/pipeline_marker.svg" type="node" preset_name_label="true">
+            <link wiki="Key:marker" />
+            <space />
+            <combo key="marker" text="Type" values="aerial,ground,pedestal,plate,post,stone" values_context="marker" match="key!" />
+            <key key="indication:emergency" value="fire_hydrant" match="keyvalue!" />
+            <optional>
+                <reference ref="ref_operator" />
+                <combo key="material" text="Material" values="concrete,metal,plastic,steel,stone,wood" />
+                <reference ref="color" />
+                <combo key="location" text="Location" values="overground,overhead,surface,underground,underwater" values_context="pipeline" />
+                <space />
+                <label text="Indicates:" />
+                <text key="indication:diameter" text="Diameter" />
+            </optional>
+        </item> <!-- Hydrant marker -->
         <item name="Water Tank" icon="presets/emergency/water_tank.svg" type="node,closedway" preset_name_label="true">
             <link wiki="Tag:emergency=water_tank" />
@@ -6100,4 +6115,16 @@
             <preset_link preset_name="Address" />
         </item> <!-- Residential Building -->
+        <item name="Service Building" icon="presets/landmark/building.svg" type="closedway,multipolygon" preset_name_label="true">
+            <link wiki="Key:building" />
+            <key key="building" value="service" match="keyvalue!" />
+            <optional>
+                <reference ref="name_operator" />
+                <reference ref="utilities" />
+                <combo key="building:levels" text="Levels above ground" values="1,2,3,4,5,6,7,8,9,10,11" text_context="building" />
+                <combo key="building:levels:underground" text="Levels below ground" values="1,2,3,4,5,6,7,8,9,10,11" text_context="building" />
+                <text key="height" text="Height (meters)" length="7" />
+            </optional>
+            <preset_link preset_name="Address" />
+        </item> <!-- Service Building -->
         <item name="Building part" icon="presets/landmark/building.svg" type="closedway,multipolygon" preset_name_label="true">
             <link wiki="Key:building:part" />
@@ -6371,5 +6398,5 @@
             <key key="man_made" value="utility_pole" />
             <reference ref="pole" />
-            <reference ref="utilities" />
+            <combo key="utility" text="Utility" values="power,street_lighting,telecom,television" values_searchable="true"/>
             <optional>
                 <reference ref="line_properties"/>
@@ -6389,5 +6416,6 @@
             <key key="man_made" value="street_cabinet" />
             <optional>
-                <combo key="street_cabinet" text="Type" values="cable_tv,gas,postal_service,power,street_lighting,telecom,traffic_control,traffic_monitoring,transport_management,waste,water,water_management" />
+                <reference ref="utilities" />
+                <combo key="street_cabinet" text="Special function" values="postal_service,traffic_control,traffic_monitoring,transport_management,waste" />
                 <reference ref="ref_operator" />
                 <text key="manufacturer" text="Manufacturer" />
@@ -6637,5 +6665,6 @@
             <link wiki="Key:marker" />
             <space />
-            <combo key="marker" text="Type" values="aerial,ground,pedestal,plate,post,stone" values_context="marker" match="key" />
+            <combo key="marker" text="Type" values="aerial,ground,pedestal,plate,post,stone" values_context="marker" match="key!" />
+            <key key="indication:man_made" value="pipeline" match="keyvalue!" />
             <reference ref="utilities" />
             <optional>
@@ -6644,6 +6673,11 @@
                 <reference ref="color" />
                 <combo key="location" text="Location" values="overground,overhead,surface,underground,underwater" values_context="pipeline" />
-            </optional>
-        </item> <!-- Marker -->
+                <space />
+                <label text="Indicates:" />
+                <combo key="indication:substance" text="Substance" values="water,hot_water,steam,sewage,gas,oil" />
+                <text key="indication:diameter" text="Diameter" />
+                <text key="indication:pressure" text="Pressure" />
+            </optional>
+        </item> <!-- Pipeline marker -->
         <item name="Manhole" icon="presets/misc/manhole.svg" type="node" preset_name_label="true">
             <link wiki="Key:manhole" />
@@ -7215,5 +7249,5 @@
             <link wiki="Tag:man_made=street_cabinet" />
             <key key="man_made" value="street_cabinet" />
-            <key key="street_cabinet" value="power" />
+            <key key="utility" value="power" />
             <optional>
                 <combo key="voltage" text="Voltage in Volts (V)" values="600,400,220,110" /> <!-- Recheck values -->
@@ -7228,4 +7262,5 @@
             <space />
             <key key="building" value="transformer_tower" />
+            <key key="utility" value="power" />
             <text key="height" text="Height (meters)" length="7" />
             <reference ref="ref_operator" />
@@ -7369,4 +7404,20 @@
             </optional>
         </item> <!-- Power Cable -->
+        <item name="Cable marker" icon="presets/misc/pipeline_marker.svg" type="node" preset_name_label="true">
+            <link wiki="Key:marker" />
+            <space />
+            <combo key="marker" text="Type" values="aerial,ground,pedestal,plate,post,stone" values_context="marker" match="key!" />
+            <key key="indication:power" value="cable" match="keyvalue!" />
+            <key key="utility" value="power" match="keyvalue!"/>
+            <optional>
+                <reference ref="ref_operator" />
+                <combo key="material" text="Material" values="concrete,metal,plastic,steel,stone,wood" />
+                <reference ref="color" />
+                <combo key="location" text="Location" values="overground,overhead,surface,underground,underwater" values_context="pipeline" />
+                <space />
+                <label text="Indicates:" />
+                <text key="indication:voltage" text="Voltage" />
+            </optional>
+        </item> <!-- Power marker -->
     </group> <!-- Power -->
     <group name="Telecom" icon="presets/telecom/telecom.svg">
@@ -7374,5 +7425,5 @@
             <link wiki="Tag:man_made=street_cabinet" />
             <key key="man_made" value="street_cabinet" />
-            <key key="street_cabinet" value="telecom" />
+            <key key="utility" value="telecom" />
             <optional>
                 <reference ref="ref_operator" />
@@ -9680,5 +9731,8 @@
             <key key="landuse" value="industrial" />
             <combo key="industrial" text="Type" values="bakery,brewery,brickyard,depot,distributor,factory,grinding_mill,heating_station,machine_shop,mine,oil,port,salt_pond,sawmill,scrap_yard,shipyard,slaughterhouse,warehouse,wellsite" values_context="industrial" />
-            <reference ref="optional_name" />
+            <optional>
+                <text key="name" text="Name" />
+                <reference ref="utilities" />
+            </optional>
         </item> <!-- Industrial -->
         <item name="Garages" icon="presets/landuse/garages.svg" type="closedway,multipolygon" preset_name_label="true">
Index: /trunk/resources/data/validator/combinations.mapcss
===================================================================
--- /trunk/resources/data/validator/combinations.mapcss	(revision 19590)
+++ /trunk/resources/data/validator/combinations.mapcss	(revision 19591)
@@ -367,8 +367,4 @@
 node[transformer][voltage],
 node[marker][cover],
-node[marker][voltage],
-node[marker][pressure],
-node[marker][diameter],
-node[marker][substance],
 *[building:part][building],
 *[addr:street][addr:place][outside("CZ,DK")] {
@@ -1180,2 +1176,32 @@
   suggestAlternative: "{0.tag} + {1.key}=*";
 }
+
+/* #24724 */
+*[marker][voltage] {
+  throwWarning: tr("{0} with {1}", "{0.tag}", "{1.key}");
+  group: tr("suspicious tag combination");
+  suggestAlternative: "indication:voltage=*";
+  fixRemove: "voltage";
+  fixAdd: "indication:voltage={1.value}"
+}
+*[marker][diameter] {
+  throwWarning: tr("{0} with {1}", "{0.tag}", "{1.key}");
+  group: tr("suspicious tag combination");
+  suggestAlternative: "indication:diameter=*";
+  fixRemove: "diameter";
+  fixAdd: "indication:diameter={1.value}"
+}
+*[marker][pressure] {
+  throwWarning: tr("{0} with {1}", "{0.tag}", "{1.key}");
+  group: tr("suspicious tag combination");
+  suggestAlternative: "indication:pressure=*";
+  fixRemove: "pressure";
+  fixAdd: "indication:pressure={1.value}"
+}
+*[marker][substance] {
+  throwWarning: tr("{0} with {1}", "{0.tag}", "{1.key}");
+  group: tr("suspicious tag combination");
+  suggestAlternative: "indication:substance=*";
+  fixRemove: "substance";
+  fixAdd: "indication:substance={1.value}"
+}
Index: /trunk/resources/data/validator/deprecated.mapcss
===================================================================
--- /trunk/resources/data/validator/deprecated.mapcss	(revision 19590)
+++ /trunk/resources/data/validator/deprecated.mapcss	(revision 19591)
@@ -925,7 +925,8 @@
 *[power=cable_distribution_cabinet] {
   throwWarning: tr("{0} is deprecated", "{0.tag}");
-  suggestAlternative: "man_made=street_cabinet + street_cabinet=*";
+  suggestAlternative: "man_made=street_cabinet + utility=power";
   group: tr("deprecated tagging");
   fixAdd: "man_made=street_cabinet";
+  fixAdd: "utility=power";
   fixRemove: "power";
 }
@@ -934,7 +935,8 @@
 *[power][location=kiosk] {
   throwWarning: tr("{0} is deprecated", "{1.tag}");
+  suggestAlternative: "man_made=street_cabinet + utility=power";
   group: tr("deprecated tagging");
   fixAdd: "man_made=street_cabinet";
-  fixAdd: "street_cabinet=power";
+  fixAdd: "utility=power";
   fixRemove: "location";
 }
@@ -2356,4 +2358,27 @@
 }
 
+/* #20421 */
+*[transformer=minor_distribution] {
+  throwWarning: tr("{0} is deprecated", "{1.tag}");
+  suggestAlternative: "transformer=distribution";
+  group: tr("deprecated tagging");
+  fixAdd: "transformer=distribution";
+}
+
+*[transformer=traction] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "transformer=main";
+  group: tr("deprecated tagging");
+  fixAdd: "transformer=main";
+}
+
+*[transformer=auto] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "transformer=* + windings:auto=yes";
+  group: tr("deprecated tagging");
+  fixRemove: "transformer";
+  fixAdd: "windings:auto=yes";
+}
+
 /* #20434 */
 *[building:roof:shape] {
@@ -2514,4 +2539,56 @@
 }
 
+
+/* #22748, Many street_cabinet values are deprecated*/
+*[street_cabinet=power] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  group: tr("deprecated tagging");
+  suggestAlternative: "utility=power";
+  fixAdd: "utility=power";
+  fixRemove: "street_cabinet";
+}
+*[street_cabinet=telecom] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  group: tr("deprecated tagging");
+  suggestAlternative: "utility=telecom";
+  fixAdd: "utility=telecom";
+  fixRemove: "street_cabinet";
+}
+*[street_cabinet=gas] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  group: tr("deprecated tagging");
+  suggestAlternative: "utility=gas";
+  fixAdd: "utility=gas";
+  fixRemove: "street_cabinet";
+}
+*[street_cabinet=street_lighting] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  group: tr("deprecated tagging");
+  suggestAlternative: "utility=street_lighting";
+  fixAdd: "utility=street_lighting";
+  fixRemove: "street_cabinet";
+}
+*[street_cabinet=water] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  group: tr("deprecated tagging");
+  suggestAlternative: "utility=water";
+  fixAdd: "utility=water";
+  fixRemove: "street_cabinet";
+}
+*[street_cabinet=water_management] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  group: tr("deprecated tagging");
+  suggestAlternative: "utility=water";
+  fixAdd: "utility=water";
+  fixRemove: "street_cabinet";
+}
+*[industrial=gas] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  group: tr("deprecated tagging");
+  suggestAlternative: "utility=gas";
+  fixAdd: "utility=gas";
+  fixRemove: "industrial";
+}
+
 /* Tag was renamed, see #22957 */
 area[parking:orientation][!orientation] {
@@ -2619,3 +2696,12 @@
 }
 
+/* #24724, utility=hydrant is replaced by indication:emergency=fire_hydrant */
+*[marker][utility=hydrant] {
+  throwWarning: tr("{0} is deprecated", "{1.tag}");
+  group: tr("deprecated tagging");
+  suggestAlternative: "utility=water + indication:emergency=fire_hydrant";
+  fixAdd: "indication:emergency=fire_hydrant";
+  fixAdd": "utility=water";
+}
+
 /* When tags are deprecated they should be added to ignoretags.cfg too. */
Index: /trunk/resources/data/validator/ignoretags.cfg
===================================================================
--- /trunk/resources/data/validator/ignoretags.cfg	(revision 19590)
+++ /trunk/resources/data/validator/ignoretags.cfg	(revision 19591)
@@ -630,4 +630,13 @@
 K:man_made=outdoor_dslam
 K:street_cabinet=outdoor_dslam
+K:street_cabinet=power
+K:street_cabinet=telecom
+K:street_cabinet=street_lighting
+K:street_cabinet=water
+K:street_cabinet=water_management
+K:street_cabinet=gas
+K:street_cabinet=cable_tv
+K:street_cabinet=sewerage
+K:industrial=gas
 K:telecom=dslam
 K:telecom=outdoor_dslam
Index: /trunk/resources/styles/standard/elemstyles.mapcss
===================================================================
--- /trunk/resources/styles/standard/elemstyles.mapcss	(revision 19590)
+++ /trunk/resources/styles/standard/elemstyles.mapcss	(revision 19591)
@@ -1469,8 +1469,8 @@
 area[power=switchgear],
 area[power=generator],
-area[man_made=street_cabinet][street_cabinet=power] {
+area[man_made=street_cabinet][utility=power] {
     fill-color: power#eeeeee;
 }
-node[man_made=street_cabinet][street_cabinet=power] {
+node[man_made=street_cabinet][utility=power] {
     icon-image: "presets/power/cable_distribution_cabinet.svg";
     set icon_z17;
@@ -1588,5 +1588,5 @@
 /*****************/
 
-area[man_made=street_cabinet][street_cabinet!=power], /* power street cabinet has own style above */
+area[man_made=street_cabinet][utility!=power], /* power street cabinet has own style above */
 area[man_made=beacon],
 area[man_made=bridge],
@@ -1604,5 +1604,5 @@
     fill-color: manmade#d8d8d8;
 }
-node[man_made=street_cabinet][street_cabinet!=power] {
+node[man_made=street_cabinet][utility!=power] {
     icon-image: "presets/misc/street_cabinet.svg";
     set icon_z17;
@@ -2026,5 +2026,5 @@
 area[telecom=connection_point],
 area[telecom=service_device],
-area[man_made=street_cabinet][street_cabinet=telecom] {
+area[man_made=street_cabinet][utility=telecom] {
     fill-color: telecom#d8d8d8; /* same as man_made */
 }
@@ -2041,5 +2041,5 @@
     set icon_z17;
 }
-node[man_made=street_cabinet][street_cabinet=telecom] {
+node[man_made=street_cabinet][utility=telecom] {
     icon-image: "presets/telecom/telecom_cabinet.svg";
     set icon_z17;
