Index: /trunk/data/defaultpresets.xml
===================================================================
--- /trunk/data/defaultpresets.xml	(revision 4743)
+++ /trunk/data/defaultpresets.xml	(revision 4744)
@@ -3807,5 +3807,30 @@
     <group name="Man Made" icon="presets/works.png">
         <item name="Building" icon="styles/standard/misc/landmark/building.png" type="node,closedway,relation">
-            <key key="building" value="yes" />
+            <link href="http://wiki.openstreetmap.org/wiki/Key:building"
+                  de.href="http://wiki.openstreetmap.org/wiki/DE:Key:building"
+                  fr.href="http://wiki.openstreetmap.org/wiki/FR:Key:building"
+                  it.href="http://wiki.openstreetmap.org/wiki/IT:Key:building"
+                  ja.href="http://wiki.openstreetmap.org/wiki/JA:Key:building"
+                  nl.href="http://wiki.openstreetmap.org/wiki/NL:Key:building"
+                  no.href="http://wiki.openstreetmap.org/wiki/NO:Key:building"
+                  pl.href="http://wiki.openstreetmap.org/wiki/PL:Key:building"
+                  ru.href="http://wiki.openstreetmap.org/wiki/RU:Key:building" />
+            <label text="Edit Building" />
+            <combo key="building" text="Building" values="yes,roof,garage,industrial,church,school,hangar,commercial,farm,transportation,greenhouse,office,university" default="yes" />
+            <text key="name" text="Name" default="" delete_if_empty="true" />
+        </item>
+        <item name="Residential Building" icon="styles/standard/misc/landmark/building.png" type="node,closedway,relation">
+            <link href="http://wiki.openstreetmap.org/wiki/Key:building"
+                  de.href="http://wiki.openstreetmap.org/wiki/DE:Key:building"
+                  fr.href="http://wiki.openstreetmap.org/wiki/FR:Key:building"
+                  it.href="http://wiki.openstreetmap.org/wiki/IT:Key:building"
+                  ja.href="http://wiki.openstreetmap.org/wiki/JA:Key:building"
+                  nl.href="http://wiki.openstreetmap.org/wiki/NL:Key:building"
+                  no.href="http://wiki.openstreetmap.org/wiki/NO:Key:building"
+                  pl.href="http://wiki.openstreetmap.org/wiki/PL:Key:building"
+                  ru.href="http://wiki.openstreetmap.org/wiki/RU:Key:building" />
+            <label text="Edit Residential Building" />
+            <combo key="building" text="Building" values="residential,apartments,house,hut,terraced,detached,roof" default="residential" />
+            <text key="name" text="Name" default="" delete_if_empty="true" />
         </item>
         <item name="Tower" icon="presets/tower.png" type="node,closedway">
Index: /trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java	(revision 4743)
+++ /trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java	(revision 4744)
@@ -84,5 +84,5 @@
     /** the default list of tags which are used as naming tags in relations */
     static public final String[] DEFAULT_NAMING_TAGS_FOR_RELATIONS = {"name", "ref", "restriction", "landuse", "natural",
-        "public_transport", ":LocationCode", "note"};
+        "public_transport", ":LocationCode", "note", "building"};
 
     /** the current list of tags used as naming tags in relations */
@@ -226,5 +226,6 @@
                                 (way.get("railway") != null) ? tr("railway") :
                                     (way.get("waterway") != null) ? tr("waterway") :
-                                        (way.get("landuse") != null) ? tr("landuse") : null;
+                                        (way.get("building") != null) ? tr("building") :
+                                            (way.get("landuse") != null) ? tr("landuse") : null;
                 }
                 if(n == null)
@@ -433,5 +434,5 @@
         if (name == null) {
             String building  = relation.get("building");
-            if(OsmUtils.isTrue(building)) {
+            if (OsmUtils.isTrue(building)) {
                 name = tr("building");
             } else if(building != null)
@@ -472,6 +473,11 @@
             }
             return null;
-        } else
+        } else if (OsmUtils.isTrue(relation.get(nameTag))) {
+            return tr(nameTag);
+        } else if (OsmUtils.isFalse(relation.get(nameTag))) {
+            return null;
+        } else {
             return trc_lazy(nameTag, I18n.escape(relation.get(nameTag)));
+        }
     }
 
