Index: trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java	(revision 7809)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java	(revision 7811)
@@ -1397,6 +1397,8 @@
                 int j = 0;
                 for (int i = 0; i < lm.getSize(); i++) {
-                    if (parts.contains((lm.getElementAt(i).value))) {
+                    final String value = lm.getElementAt(i).value;
+                    if (parts.contains(value)) {
                         intParts[j++]=i;
+                        parts.remove(value);
                     }
                 }
@@ -1405,5 +1407,5 @@
                 // value with our presets. if not, cop out; we will not offer
                 // a selection list that threatens to ruin the value.
-                setEnabled(Utils.join(delimiter, parts).equals(getSelectedItem()));
+                setEnabled(parts.isEmpty());
             }
         }
