Index: src/org/openstreetmap/josm/data/osm/DefaultNameFormatter.java
===================================================================
--- src/org/openstreetmap/josm/data/osm/DefaultNameFormatter.java	(revision 17488)
+++ src/org/openstreetmap/josm/data/osm/DefaultNameFormatter.java	(working copy)
@@ -251,6 +251,7 @@
             name.append(tr("incomplete"));
         } else {
             TaggingPreset preset = TaggingPresetNameTemplateList.getInstance().findPresetTemplate(way);
+            final boolean showFullTag = Config.getPref().getBoolean("osm-primitives.show-full-tag", false);
             if (preset == null || !(way instanceof TemplateEngineDataProvider)) {
                 String n;
                 if (Config.getPref().getBoolean("osm-primitives.localize-name", true)) {
@@ -261,6 +262,15 @@
                 if (n == null) {
                     n = way.get("ref");
                 }
+                if (n == null && showFullTag) {
+                    for (String key : Arrays.asList("highway", "railway", "waterway", "landuse")) {
+                        String value = way.get(key);
+                        if (value != null) {
+                            n = key + "=" + value;
+                            break;
+                        }
+                    }
+                }
                 if (n == null) {
                     n = way.hasKey("highway") ? tr("highway") :
                         way.hasKey("railway") ? tr("railway") :
@@ -286,7 +296,10 @@
                     }
                 }
                 if (n == null && way.hasKey("building")) {
-                    n = tr("building");
+                    if (showFullTag)
+                        n = "building=" + way.get("building");
+                    else
+                        n = tr("building");
                 }
                 if (n == null || n.isEmpty()) {
                     n = String.valueOf(way.getId());
