Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 4595)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 4596)
@@ -91,4 +91,5 @@
 
         MultikeyActionsHandler.getInstance().addAction(instance.new ShowHideLayerAction(false));
+        MultikeyActionsHandler.getInstance().addAction(instance.new ActivateLayerAction());
     }
 
@@ -238,4 +239,5 @@
         // -- activate action
         activateLayerAction = new ActivateLayerAction();
+        activateLayerAction.updateEnabledState();
         adaptTo(activateLayerAction, selectionModel);
 
@@ -618,5 +620,5 @@
      */
 
-    public final class ActivateLayerAction extends AbstractAction implements IEnabledStateUpdating, MapView.LayerChangeListener{
+    public final class ActivateLayerAction extends AbstractAction implements IEnabledStateUpdating, MapView.LayerChangeListener, MultikeyShortcutAction{
         private  Layer layer;
 
@@ -632,6 +634,6 @@
             putValue(SMALL_ICON, ImageProvider.get("dialogs", "activate"));
             putValue(SHORT_DESCRIPTION, tr("Activate the selected layer"));
+            putValue(ACCELERATOR_KEY, Shortcut.registerShortcut("core_multikey:activateLayer", "", 'A', Shortcut.GROUP_DIRECT, KeyEvent.SHIFT_DOWN_MASK + KeyEvent.ALT_DOWN_MASK).getKeyStroke());
             putValue("help", HelpUtil.ht("/Dialog/LayerList#ActivateLayer"));
-            updateEnabledState();
         }
 
@@ -644,8 +646,12 @@
                 toActivate = model.getSelectedLayers().get(0);
             }
+            execute(toActivate);
+        }
+
+        private void execute(Layer layer) {
             // model is  going to be updated via LayerChangeListener
             // and PropertyChangeEvents
-            Main.map.mapView.setActiveLayer(toActivate);
-            toActivate.setVisible(true);
+            Main.map.mapView.setActiveLayer(layer);
+            layer.setVisible(true);
         }
 
@@ -681,4 +687,27 @@
         public void layerRemoved(Layer oldLayer) {
             updateEnabledState();
+        }
+
+        @Override
+        public void executeMultikeyAction(int index) {
+            Layer l = LayerListDialog.getLayerForIndex(index);
+            if (l != null) {
+                execute(l);
+            }
+        }
+
+        @Override
+        public void repeateLastMultikeyAction() {
+            // Do nothing, repating not supported
+        }
+
+        @Override
+        public List<MultikeyInfo> getMultikeyCombinations() {
+            return LayerListDialog.getLayerInfoByClass(Layer.class);
+        }
+
+        @Override
+        public MultikeyInfo getLastMultikeyAction() {
+            return null; // Repeating action doesn't make much sense for activating
         }
     }
