Index: /trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java	(revision 18361)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java	(revision 18362)
@@ -576,5 +576,4 @@
      * Value: The action to execute.
      */
-    private final Map<String, Action> actions = new ConcurrentHashMap<>();
     private final Map<String, Action> regactions = new ConcurrentHashMap<>();
 
@@ -1027,5 +1026,5 @@
     }
 
-    private void loadAction(DefaultMutableTreeNode node, MenuElement menu) {
+    private void loadAction(DefaultMutableTreeNode node, MenuElement menu, Map<String, Action> actionsInMenu) {
         Object userObject = null;
         MenuElement menuElement = menu;
@@ -1053,10 +1052,10 @@
                     } else {
                         String toolbar = (String) tb;
-                        Action r = actions.get(toolbar);
+                        Action r = actionsInMenu.get(toolbar);
                         if (r != null && r != action && !toolbar.startsWith(IMAGERY_PREFIX)) {
                             Logging.info(tr("Toolbar action {0} overwritten: {1} gets {2}",
                             toolbar, r.getClass().getName(), action.getClass().getName()));
                         }
-                        actions.put(toolbar, action);
+                        actionsInMenu.put(toolbar, action);
                     }
                 } else {
@@ -1066,13 +1065,13 @@
             DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(userObject);
             node.add(newNode);
-            loadAction(newNode, item);
-        }
-    }
-
-    private void loadActions() {
+            loadAction(newNode, item, actionsInMenu);
+        }
+    }
+
+    private void loadActions(Map<String, Action> actionsInMenu) {
         rootActionsNode.removeAllChildren();
-        loadAction(rootActionsNode, MainApplication.getMenu());
+        loadAction(rootActionsNode, MainApplication.getMenu(), actionsInMenu);
         for (Map.Entry<String, Action> a : regactions.entrySet()) {
-            if (actions.get(a.getKey()) == null) {
+            if (actionsInMenu.get(a.getKey()) == null) {
                 rootActionsNode.add(new DefaultMutableTreeNode(a.getValue()));
             }
@@ -1099,8 +1098,10 @@
 
     private Collection<ActionDefinition> getDefinedActions() {
-        loadActions();
+        Map<String, Action> actionsInMenu = new ConcurrentHashMap<>();
+
+        loadActions(actionsInMenu);
 
         Map<String, Action> allActions = new ConcurrentHashMap<>(regactions);
-        allActions.putAll(actions);
+        allActions.putAll(actionsInMenu);
         ActionParser actionParser = new ActionParser(allActions);
 
@@ -1141,5 +1142,4 @@
         }
         if (toolbar != null) {
-            actions.put(toolbar, action);
             regactions.put(toolbar, action);
         }
@@ -1156,5 +1156,4 @@
         Object toolbar = action.getValue("toolbar");
         if (toolbar instanceof String) {
-            actions.remove(toolbar);
             return regactions.remove(toolbar);
         }
