Index: trunk/src/org/openstreetmap/josm/tools/Shortcut.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/Shortcut.java	(revision 11171)
+++ trunk/src/org/openstreetmap/josm/tools/Shortcut.java	(revision 11172)
@@ -8,6 +8,6 @@
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.HashMap;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -366,29 +366,9 @@
         Main.platform.initSystemShortcuts();
         // (2) User defined shortcuts
-        List<Shortcut> newshortcuts = new LinkedList<>();
-        for (String s : Main.pref.getAllPrefixCollectionKeys("shortcut.entry.")) {
-            newshortcuts.add(new Shortcut(s));
-        }
-
-        for (Shortcut sc : newshortcuts) {
-            if (sc.isAssignedUser()
-            && findShortcut(sc.getAssignedKey(), sc.getAssignedModifier()) == null) {
-                shortcuts.add(sc);
-            }
-        }
-        // Shortcuts at their default values
-        for (Shortcut sc : newshortcuts) {
-            if (!sc.isAssignedUser() && sc.isAssignedDefault()
-            && findShortcut(sc.getAssignedKey(), sc.getAssignedModifier()) == null) {
-                shortcuts.add(sc);
-            }
-        }
-        // Shortcuts that were automatically moved
-        for (Shortcut sc : newshortcuts) {
-            if (!sc.isAssignedUser() && !sc.isAssignedDefault()
-            && findShortcut(sc.getAssignedKey(), sc.getAssignedModifier()) == null) {
-                shortcuts.add(sc);
-            }
-        }
+        Main.pref.getAllPrefixCollectionKeys("shortcut.entry.").stream()
+                .map(Shortcut::new)
+                .filter(sc -> findShortcut(sc.getAssignedKey(), sc.getAssignedModifier()) == null)
+                .sorted(Comparator.comparing(sc -> sc.isAssignedUser() ? 1 : sc.isAssignedDefault() ? 2 : 3))
+                .forEachOrdered(shortcuts::add);
     }
 
