Index: /trunk/src/org/openstreetmap/josm/actions/OpenLocationAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/OpenLocationAction.java	(revision 15010)
+++ /trunk/src/org/openstreetmap/josm/actions/OpenLocationAction.java	(revision 15011)
@@ -12,5 +12,4 @@
 import java.util.Collection;
 import java.util.Collections;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Objects;
@@ -110,10 +109,6 @@
      */
     protected void restoreUploadAddressHistory(HistoryComboBox cbHistory) {
-        List<String> cmtHistory = new LinkedList<>(Config.getPref().getList(getClass().getName() + ".uploadAddressHistory",
-                new LinkedList<String>()));
-        // we have to reverse the history, because ComboBoxHistory will reverse it again in addElement()
-        //
-        Collections.reverse(cmtHistory);
-        cbHistory.setPossibleItems(cmtHistory);
+        cbHistory.setPossibleItemsTopDown(Config.getPref().getList(getClass().getName() + ".uploadAddressHistory",
+                Collections.emptyList()));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/SearchNotesDownloadAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SearchNotesDownloadAction.java	(revision 15010)
+++ /trunk/src/org/openstreetmap/josm/actions/SearchNotesDownloadAction.java	(revision 15011)
@@ -8,6 +8,4 @@
 import java.awt.event.ActionEvent;
 import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
 import java.util.Optional;
 
@@ -43,7 +41,5 @@
     public void actionPerformed(ActionEvent e) {
         HistoryComboBox searchTermBox = new HistoryComboBox();
-        List<String> searchHistory = new LinkedList<>(Config.getPref().getList(HISTORY_KEY, new LinkedList<String>()));
-        Collections.reverse(searchHistory);
-        searchTermBox.setPossibleItems(searchHistory);
+        searchTermBox.setPossibleItemsTopDown(Config.getPref().getList(HISTORY_KEY, Collections.emptyList()));
 
         JPanel contentPanel = new JPanel(new GridBagLayout());
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/OsmIdSelectionDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/OsmIdSelectionDialog.java	(revision 15010)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/OsmIdSelectionDialog.java	(revision 15011)
@@ -14,5 +14,4 @@
 import java.util.Collections;
 import java.util.EnumSet;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -180,9 +179,6 @@
      */
     protected void restorePrimitivesHistory(HistoryComboBox cbHistory) {
-        List<String> cmtHistory = new LinkedList<>(
-                Config.getPref().getList(getClass().getName() + ".primitivesHistory", new LinkedList<String>()));
-        // we have to reverse the history, because ComboBoxHistory will reverse it again in addElement()
-        Collections.reverse(cmtHistory);
-        cbHistory.setPossibleItems(cmtHistory);
+        cbHistory.setPossibleItemsTopDown(
+                Config.getPref().getList(getClass().getName() + ".primitivesHistory", Collections.emptyList()));
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/download/OverpassQueryWizardDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/OverpassQueryWizardDialog.java	(revision 15010)
+++ /trunk/src/org/openstreetmap/josm/gui/download/OverpassQueryWizardDialog.java	(revision 15011)
@@ -95,7 +95,5 @@
             queryWizard.setText(items.get(0));
         }
-        // HistoryComboBox needs the reversed list
-        Collections.reverse(items);
-        queryWizard.setPossibleItems(items);
+        queryWizard.setPossibleItemsTopDown(items);
 
         setCancelButton(CANCEL + 1);
Index: /trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java	(revision 15010)
+++ /trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java	(revision 15011)
@@ -18,5 +18,4 @@
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.StringTokenizer;
@@ -115,7 +114,5 @@
         cbSearchExpression = new HistoryComboBox();
         cbSearchExpression.setToolTipText(tr("Enter a place name to search for"));
-        List<String> cmtHistory = new LinkedList<>(Config.getPref().getList(HISTORY_KEY, new LinkedList<String>()));
-        Collections.reverse(cmtHistory);
-        cbSearchExpression.setPossibleItems(cmtHistory);
+        cbSearchExpression.setPossibleItemsTopDown(Config.getPref().getList(HISTORY_KEY, Collections.emptyList()));
         lpanel.add(cbSearchExpression);
 
Index: /trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java	(revision 15010)
+++ /trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java	(revision 15011)
@@ -14,5 +14,4 @@
 import java.awt.event.KeyEvent;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
@@ -114,7 +113,5 @@
 
     private static void populateHistoryComboBox(HistoryComboBox hcb, String historyKey, List<String> defaultValues) {
-        List<String> cmtHistory = new LinkedList<>(Config.getPref().getList(historyKey, defaultValues));
-        Collections.reverse(cmtHistory); // we have to reverse the history, because ComboBoxHistory will reverse it again in addElement()
-        hcb.setPossibleItems(cmtHistory);
+        hcb.setPossibleItemsTopDown(Config.getPref().getList(historyKey, defaultValues));
         hcb.discardAllUndoableEdits();
     }
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/projection/CustomProjectionChoice.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/projection/CustomProjectionChoice.java	(revision 15010)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/projection/CustomProjectionChoice.java	(revision 15011)
@@ -11,5 +11,4 @@
 import java.util.Collection;
 import java.util.Collections;
-import java.util.LinkedList;
 import java.util.List;
 
@@ -75,7 +74,5 @@
                     "+proj=lonlat +ellps=WGS84 +datum=WGS84 +bounds=-180,-90,180,90",
                     "+proj=tmerc +lat_0=0 +lon_0=9 +k_0=1 +x_0=3500000 +y_0=0 +ellps=bessel +nadgrids=BETA2007.gsb");
-            List<String> inputHistory = new LinkedList<>(Config.getPref().getList("projection.custom.value.history", samples));
-            Collections.reverse(inputHistory);
-            cbInput.setPossibleItems(inputHistory);
+            cbInput.setPossibleItemsTopDown(Config.getPref().getList("projection.custom.value.history", samples));
             cbInput.setText(initialText == null ? "" : initialText);
 
Index: /trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletingComboBox.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletingComboBox.java	(revision 15010)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletingComboBox.java	(revision 15011)
@@ -9,4 +9,6 @@
 import java.awt.im.InputContext;
 import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
 import java.util.Locale;
 
@@ -288,5 +290,5 @@
 
     /**
-     * Sets the items of the combobox to the given {@code String}s.
+     * Sets the items of the combobox to the given {@code String}s in reversed order (last element first).
      * @param elems String items
      */
@@ -298,8 +300,21 @@
             model.addElement(new AutoCompletionItem(elem, AutoCompletionPriority.UNKNOWN));
         }
+        this.setSelectedItem(null);
         // disable autocomplete to prevent unnecessary actions in AutoCompletingComboBoxDocument#insertString
         autocompleteEnabled = false;
-        this.getEditor().setItem(oldValue); // Do not use setSelectedItem(oldValue); (fix #8013)
+        this.setSelectedItem(oldValue);
         autocompleteEnabled = true;
+    }
+
+    /**
+     * Sets the items of the combobox to the given {@code String}s in top down order.
+     * @param elems Collection of String items (is not changed)
+     * @since 15011
+     */
+    public void setPossibleItemsTopDown(Collection<String> elems) {
+        // We have to reverse the history, because ComboBoxHistory will reverse it again in addElement()
+        LinkedList<String> reversed = new LinkedList<>(elems);
+        Collections.reverse(reversed);
+        setPossibleItems(reversed);
     }
 
