Index: trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 4348)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 4350)
@@ -182,4 +182,6 @@
     }
 
+    private final Shortcut[] visibilityToggleShortcuts = new Shortcut[10];
+    private final ToggleLayerIndexVisibility[] visibilityToggleActions = new ToggleLayerIndexVisibility[10];
     /**
      * registers (shortcut to toggle right hand side toggle dialogs)+(number keys) shortcuts
@@ -191,11 +193,12 @@
                 KeyEvent.VK_9, KeyEvent.VK_0 };
 
-        for(int i=1; i <= 10; i++) {
-            Main.registerActionShortcut(
-                    new ToggleLayerIndexVisibility(i),
-                    Shortcut.registerShortcut("subwindow:layers:toggleLayer" + i,
-                            tr("Toggle visibility of layer: {0}", i),
-                            k[i-1],
-                            Shortcut.GROUP_LAYER));
+        for(int i=0; i < 10; i++) {
+            visibilityToggleShortcuts[i] = Shortcut.registerShortcut(
+                    "subwindow:layers:toggleLayer" + (i+1),
+                    tr("Toggle visibility of layer: {0}", (i+1)),
+                    k[i],
+                    Shortcut.GROUP_LAYER);
+            visibilityToggleActions[i] = new ToggleLayerIndexVisibility(i);
+            Main.registerActionShortcut(visibilityToggleActions[i], visibilityToggleShortcuts[i]);
         }
     }
@@ -338,4 +341,7 @@
     @Override
     public void destroy() {
+        for(int i=0; i < 10; i++) {
+            Main.unregisterActionShortcut(visibilityToggleActions[i], visibilityToggleShortcuts[i]);
+        }
         super.destroy();
         instance = null;
