Index: /trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java	(revision 11653)
+++ /trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java	(revision 11654)
@@ -64,6 +64,6 @@
      */
     public AddImageryLayerAction(ImageryInfo info) {
-        super(info.getMenuName(), /* ICON */"imagery_menu", tr("Add imagery layer {0}", info.getName()), null, false, false);
-        putValue("toolbar", "imagery_" + info.getToolbarName());
+        super(info.getMenuName(), /* ICON */"imagery_menu", tr("Add imagery layer {0}", info.getName()), null,
+                true, "imagery_" + info.getToolbarName(), false);
         putValue("help", ht("/Preferences/Imagery"));
         setTooltip(info.getToolTipText().replaceAll("</?html>", ""));
@@ -203,3 +203,8 @@
         }
     }
+
+    @Override
+    public String toString() {
+        return "AddImageryLayerAction [info=" + info + ']';
+    }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/ImageryMenu.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/ImageryMenu.java	(revision 11653)
+++ /trunk/src/org/openstreetmap/josm/gui/ImageryMenu.java	(revision 11654)
@@ -15,4 +15,5 @@
 import java.util.List;
 import java.util.Locale;
+import java.util.Optional;
 
 import javax.swing.Action;
@@ -264,5 +265,5 @@
 
     /**
-     * Remove all the items in @field dynamicItems collection
+     * Remove all the items in dynamic items collection
      * @since 5803
      */
@@ -270,10 +271,9 @@
         for (Object item : dynamicItems) {
             if (item instanceof JMenuItem) {
+                Optional.ofNullable(((JMenuItem) item).getAction()).ifPresent(Main.toolbar::unregister);
                 remove((JMenuItem) item);
-            }
-            if (item instanceof MenuComponent) {
+            } else if (item instanceof MenuComponent) {
                 remove((MenuComponent) item);
-            }
-            if (item instanceof Component) {
+            } else if (item instanceof Component) {
                 remove((Component) item);
             }
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java	(revision 11653)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java	(revision 11654)
@@ -939,4 +939,5 @@
                 selected.addElement(actionDefinition);
             }
+            actionsTreeModel.reload();
         }
 
@@ -1077,4 +1078,5 @@
 
     /**
+     * Registers an action to the toolbar preferences.
      * @param action Action to register
      * @return The parameter (for better chaining)
@@ -1096,4 +1098,18 @@
         }
         return action;
+    }
+
+    /**
+     * Unregisters an action from the toolbar preferences.
+     * @param action Action to unregister
+     * @return The removed action, or null
+     * @since 11654
+     */
+    public Action unregister(Action action) {
+        String toolbar = (String) action.getValue("toolbar");
+        if (toolbar != null) {
+            return regactions.remove(toolbar);
+        }
+        return null;
     }
 
