Index: src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesCellRenderer.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesCellRenderer.java	(revision 8159)
+++ src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesCellRenderer.java	(working copy)
@@ -3,11 +3,14 @@
 
 import static org.openstreetmap.josm.tools.I18n.marktr;
 import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
 
 import java.awt.Color;
 import java.awt.Component;
 import java.awt.Font;
+import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
 
 import javax.swing.JLabel;
 import javax.swing.JTable;
@@ -50,10 +53,31 @@
                 str = (String) value;
             } else if (value instanceof Map<?, ?>) {
                 Map<?, ?> v = (Map<?, ?>) value;
-                if (v.size() != 1) {
-                    str=tr("<different>");
+                if (v.size() != 1) {    // Multiple values: give user a short summary of the values
+                    Integer blank_count;
+                    Integer other_count;
+                    if (v.get("") == null) {
+                        blank_count = 0;
+                        other_count = v.size();
+                    } else {
+                        blank_count = (Integer)v.get("");
+                        other_count = v.size()-1;
+                    }
+                    String temp1 = trn("<{0} unset, ", "<{0} unset, ", blank_count, blank_count);
+                    String temp2 = "";
+                    if (other_count == 1) {
+                        for (Map.Entry<?, ?> entry : v.entrySet()) { // Find the non-blank value in the map
+                            if ( entry.getKey() != "") {
+                                temp2 = entry.getValue().toString() + " '" + entry.getKey() + "'>";
+                            }
+                        }
+                    } else {
+                        temp2=tr ("{0} other values>",  other_count);
+                    }
+                    str=temp1 + temp2;
                     c.setFont(c.getFont().deriveFont(Font.ITALIC));
-                } else {
+
+                } else {                // One value: display the value
                     final Map.Entry<?, ?> entry = v.entrySet().iterator().next();
                     str = (String) entry.getKey();
                 }
Index: src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 8159)
+++ src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(working copy)
@@ -703,8 +703,8 @@
         }
 
         if(tagData.getRowCount() != 0 || membershipData.getRowCount() != 0) {
-            setTitle(tr("Tags: {0} / Memberships: {1}",
-                    tagData.getRowCount(), membershipData.getRowCount()));
+            setTitle(tr("Objects: {2} / Tags: {0} / Memberships: {1}",
+                    tagData.getRowCount(), membershipData.getRowCount(), newSel.size() ));
         } else {
             setTitle(tr("Tags / Memberships"));
         }
