Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 15884)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 15885)
@@ -938,8 +938,8 @@
                     @Override
                     public void actionPerformed(ActionEvent e) {
-                        keys.setSelectedItem(t.getKey());
+                        keys.setSelectedItem(t.getKey(), true);
                         // fix #7951, #8298 - update list of values before setting value (?)
                         focus.focusGained(null);
-                        values.setSelectedItem(t.getValue());
+                        values.setSelectedItem(t.getValue(), true);
                         selectValuesCombobox();
                     }
Index: /trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletingComboBox.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletingComboBox.java	(revision 15884)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletingComboBox.java	(revision 15885)
@@ -12,4 +12,5 @@
 import java.util.LinkedList;
 import java.util.Locale;
+import java.util.stream.IntStream;
 
 import javax.swing.ComboBoxEditor;
@@ -257,8 +258,23 @@
     /**
      * Selects a given item in the ComboBox model
-     * @param item      excepts AutoCompletionItem, String and null
+     * @param item the item of type AutoCompletionItem, String or null
      */
     @Override
     public void setSelectedItem(Object item) {
+        setSelectedItem(item, false);
+    }
+
+    /**
+     * Selects a given item in the ComboBox model
+     * @param item the item of type AutoCompletionItem, String or null
+     * @param disableAutoComplete if true, autocomplete {@linkplain #setAutocompleteEnabled is disabled} during the operation
+     * @since 15885
+     */
+    public void setSelectedItem(Object item, final boolean disableAutoComplete) {
+        final boolean previousState = isAutocompleteEnabled();
+        if (disableAutoComplete) {
+            // disable autocomplete to prevent unnecessary actions in AutoCompletingComboBoxDocument#insertString
+            setAutocompleteEnabled(false);
+        }
         if (item == null) {
             super.setSelectedItem(null);
@@ -268,15 +284,15 @@
             String s = (String) item;
             // find the string in the model or create a new item
-            for (int i = 0; i < getModel().getSize(); i++) {
-                AutoCompletionItem acItem = getModel().getElementAt(i);
-                if (s.equals(acItem.getValue())) {
-                    super.setSelectedItem(acItem);
-                    return;
-                }
-            }
-            super.setSelectedItem(new AutoCompletionItem(s, AutoCompletionPriority.UNKNOWN));
+            AutoCompletionItem acItem = IntStream.range(0, getModel().getSize())
+                    .mapToObj(i -> getModel().getElementAt(i))
+                    .filter(i -> s.equals(i.getValue()))
+                    .findFirst()
+                    .orElseGet(() -> new AutoCompletionItem(s, AutoCompletionPriority.UNKNOWN));
+            super.setSelectedItem(acItem);
         } else {
+            setAutocompleteEnabled(previousState);
             throw new IllegalArgumentException("Unsupported item: "+item);
         }
+        setAutocompleteEnabled(previousState);
     }
 
@@ -293,8 +309,5 @@
         }
         this.setSelectedItem(null);
-        // disable autocomplete to prevent unnecessary actions in AutoCompletingComboBoxDocument#insertString
-        autocompleteEnabled = false;
-        this.setSelectedItem(oldValue);
-        autocompleteEnabled = true;
+        this.setSelectedItem(oldValue, true);
     }
 
