Index: /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java	(revision 5911)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java	(revision 5912)
@@ -80,4 +80,5 @@
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.widgets.JosmComboBox;
+import org.openstreetmap.josm.gui.widgets.JosmTextField;
 import org.openstreetmap.josm.io.MirroredInputStream;
 import org.openstreetmap.josm.tools.GBC;
@@ -91,5 +92,4 @@
 import org.openstreetmap.josm.tools.template_engine.TemplateParser;
 import org.xml.sax.SAXException;
-import org.openstreetmap.josm.gui.widgets.JosmTextField;
 
 
@@ -1012,5 +1012,5 @@
             } else {
                 String s = o.toString();
-                HashSet<String> parts = new HashSet<String>(Arrays.asList(s.split(delimiter)));
+                TreeSet<String> parts = new TreeSet<String>(Arrays.asList(s.split(delimiter)));
                 ListModel lm = getModel();
                 int[] intParts = new int[lm.getSize()];
@@ -1025,5 +1025,5 @@
                 // value with our presets. if not, cop out; we will not offer
                 // a selection list that threatens to ruin the value.
-                setEnabled(s.equals(getSelectedItem()));
+                setEnabled(Utils.join(delimiter, parts).equals(getSelectedItem()));
             }
         }
