Index: trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 4332)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 4333)
@@ -165,4 +165,38 @@
 
         return buttonPanel;
+    }
+
+    /** stores which layer index to toggle and executes the ShowHide action if the layer is present */
+    private final class ToggleLayerIndexVisibility extends AbstractAction {
+        int layerIndex = -1;
+        public ToggleLayerIndexVisibility(int layerIndex) {
+            this.layerIndex = layerIndex;
+        }
+        @Override
+        public void actionPerformed(ActionEvent e) {
+            final Layer l = model.getLayer(model.getRowCount() - layerIndex);
+            if(l != null) {
+                new ShowHideLayerAction(l).actionPerformed(e);
+            }
+        }
+    }
+
+    /**
+     * registers (shortcut to toggle right hand side toggle dialogs)+(number keys) shortcuts
+     * to toggle the visibility of the first ten layers.
+     */
+    private final void createVisibilityToggleShortcuts() {
+        final int[] k = { KeyEvent.VK_1, KeyEvent.VK_2, KeyEvent.VK_3, KeyEvent.VK_4,
+                KeyEvent.VK_5, KeyEvent.VK_6, KeyEvent.VK_7, KeyEvent.VK_8,
+                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));
+        }
     }
 
@@ -239,4 +273,5 @@
 
         add(createButtonPanel(), BorderLayout.SOUTH);
+        createVisibilityToggleShortcuts();
     }
 
