Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 5483)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 5484)
@@ -114,4 +114,5 @@
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionListItem;
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionManager;
+import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
 import org.openstreetmap.josm.tools.GBC;
@@ -529,6 +530,5 @@
         if (itemToSelect != null) {
             keys.setSelectedItem(itemToSelect);
-            /* don't add single chars, as they are no properly selected */
-            if(lastAddValue != null && lastAddValue.length() > 1) {
+            if (lastAddValue != null) {
                 values.setSelectedItem(lastAddValue);
             }
@@ -593,12 +593,4 @@
             for (int i = tags.size()-1; i >= 0 && count <= tagsToShow; i--, count++) {
                 final Tag t = tags.get(i);
-                // Find and display icon
-                ImageIcon icon = MapPaintStyles.getNodeIcon(t, false); // Filters deprecated icon
-                if (icon == null) {
-                    icon = new ImageIcon(new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB));
-                }
-                GridBagConstraints gbc = new GridBagConstraints();
-                gbc.ipadx = 5;
-                p.add(new JLabel(icon), gbc);
                 // Create action for reusing the tag, with keyboard shortcut Ctrl+(1-5)
                 String actionShortcutKey = "properties:recent:"+count;
@@ -622,7 +614,16 @@
                     }
                 }
+                // Find and display icon
+                ImageIcon icon = MapPaintStyles.getNodeIcon(t, false); // Filters deprecated icon
+                if (icon == null) {
+                    icon = new ImageIcon(new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB));
+                }
+                GridBagConstraints gbc = new GridBagConstraints();
+                gbc.ipadx = 5;
+                p.add(new JLabel(action.isEnabled() ? icon : GuiHelper.getDisabledIcon(icon)), gbc);
                 // Create tag label
+                final String color = action.isEnabled() ? "" : "; color:gray";
                 final JLabel tagLabel = new JLabel("<html>"
-                    + "<style>td{border:1px solid gray; font-weight:normal;}</style>" 
+                    + "<style>td{border:1px solid gray; font-weight:normal"+color+"}</style>" 
                     + "<table><tr><td>" + t.toString() + "</td></tr></table></html>");
                 if (action.isEnabled()) {
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/MapImage.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/MapImage.java	(revision 5483)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/MapImage.java	(revision 5484)
@@ -6,10 +6,6 @@
 import java.awt.Image;
 import java.awt.Rectangle;
-import java.awt.Toolkit;
 import java.awt.image.BufferedImage;
-import java.awt.image.FilteredImageSource;
-import java.awt.image.ImageProducer;
 
-import javax.swing.GrayFilter;
 import javax.swing.ImageIcon;
 
@@ -17,4 +13,5 @@
 import org.openstreetmap.josm.gui.mappaint.BoxTextElemStyle.BoxProvider;
 import org.openstreetmap.josm.gui.mappaint.BoxTextElemStyle.BoxProviderResult;
+import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.ImageProvider.ImageCallback;
@@ -49,6 +46,5 @@
         if (img == null)
             getImage(); // fix #7498 ?
-        ImageProducer ip = new FilteredImageSource(img.getSource(), new GrayFilter(true, 20));
-        disabledImg = Toolkit.getDefaultToolkit().createImage(ip);
+        disabledImg = GuiHelper.getDisabledImage(img);
         return disabledImg;
     }
Index: /trunk/src/org/openstreetmap/josm/gui/util/GuiHelper.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/util/GuiHelper.java	(revision 5483)
+++ /trunk/src/org/openstreetmap/josm/gui/util/GuiHelper.java	(revision 5484)
@@ -7,6 +7,9 @@
 import java.awt.Container;
 import java.awt.Image;
+import java.awt.Toolkit;
+import java.awt.image.FilteredImageSource;
 import java.lang.reflect.InvocationTargetException;
 
+import javax.swing.GrayFilter;
 import javax.swing.Icon;
 import javax.swing.ImageIcon;
@@ -80,4 +83,24 @@
         return dlg.showDialog().getValue() != 2;
     }
+    
+    /**
+     * Replies the disabled (grayed) version of the specified image.
+     * @param image The image to disable
+     * @return The disabled (grayed) version of the specified image, brightened by 20%.
+     * @since 5484
+     */
+    public static final Image getDisabledImage(Image image) {
+        return Toolkit.getDefaultToolkit().createImage(
+                new FilteredImageSource(image.getSource(), new GrayFilter(true, 20)));
+    }
 
+    /**
+     * Replies the disabled (grayed) version of the specified icon.
+     * @param icon The icon to disable
+     * @return The disabled (grayed) version of the specified icon, brightened by 20%.
+     * @since 5484
+     */
+    public static final ImageIcon getDisabledIcon(ImageIcon icon) {
+        return new ImageIcon(getDisabledImage(icon.getImage()));
+    }
 }
