Index: /trunk/src/org/openstreetmap/josm/actions/JosmAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/JosmAction.java	(revision 1934)
+++ /trunk/src/org/openstreetmap/josm/actions/JosmAction.java	(revision 1935)
@@ -56,13 +56,13 @@
      * Use this super constructor to setup your action. It takes 5 parameters:
      *
-     * name - the action's text as displayed on the menu (if it is added to a menu)
-     * iconName - the filename of the icon to use
-     * tooltip - a longer description of the action that will be displayed in the tooltip. Please note
-     *           that html is not supported for menu action on some platforms
-     * shortcut - a ready-created shortcut object or null if you don't want a shortcut. But you always
-     *            do want a shortcut, remember you can alway register it with group=none, so you
-     *            won't be assigned a shurtcut unless the user configures one. If you pass null here,
+     * @param name the action's text as displayed on the menu (if it is added to a menu)
+     * @param iconName the filename of the icon to use
+     * @param tooltip  a longer description of the action that will be displayed in the tooltip. Please note
+     *           that html is not supported for menu actions on some platforms.
+     * @param shortcut a ready-created shortcut object or null if you don't want a shortcut. But you always
+     *            do want a shortcut, remember you can always register it with group=none, so you
+     *            won't be assigned a shortcut unless the user configures one. If you pass null here,
      *            the user CANNOT configure a shortcut for your action.
-     * register - register this action for the toolbar preferences?
+     * @param register register this action for the toolbar preferences?
      */
     public JosmAction(String name, String iconName, String tooltip, Shortcut shortcut, boolean register) {
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java	(revision 1934)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java	(revision 1935)
@@ -102,4 +102,9 @@
         if(!Main.map.mapView.isActiveLayerVisible())
             return;
+
+        // request focus in order to enable the expected keyboard shortcuts
+        //
+        Main.map.mapView.requestFocus();
+
         boolean ctrl = (e.getModifiers() & ActionEvent.CTRL_MASK) != 0;
         boolean shift = (e.getModifiers() & ActionEvent.SHIFT_MASK) != 0;
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 1934)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 1935)
@@ -307,4 +307,7 @@
         if(!Main.map.mapView.isActiveLayerDrawable())
             return;
+        // request focus in order to enable the expected keyboard shortcuts
+        //
+        Main.map.mapView.requestFocus();
 
         if(e.getClickCount() > 1 && mousePos != null && mousePos.equals(oldMousePos)) {
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 1934)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 1935)
@@ -351,4 +351,7 @@
         if(!Main.map.mapView.isActiveLayerVisible())
             return;
+        // request focus in order to enable the expected keyboard shortcuts
+        //
+        Main.map.mapView.requestFocus();
 
         cancelDrawMode = false;
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 1934)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 1935)
@@ -9,4 +9,6 @@
 import java.awt.Point;
 import java.awt.event.ActionEvent;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseAdapter;
@@ -21,4 +23,5 @@
 
 import javax.swing.AbstractAction;
+import javax.swing.Action;
 import javax.swing.DefaultListCellRenderer;
 import javax.swing.DefaultListModel;
@@ -131,10 +134,8 @@
         //-- delete layer action
         DeleteLayerAction deleteLayerAction = new DeleteLayerAction();
-        // #3203: grabs DELETE even for primitives on the map
-        // FIXME: disabling for now, don't understand yet what's going on
-        //        layerList.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
-        //                KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0),"deleteLayer"
-        //        );
-        //        layerList.getActionMap().put("deleteLayer", deleteLayerAction);
+        layerList.getInputMap(JComponent.WHEN_FOCUSED).put(
+                KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0),"deleteLayer"
+        );
+        layerList.getActionMap().put("deleteLayer", deleteLayerAction);
         adaptTo(deleteLayerAction, selectionModel);
         buttonPanel.add(new SideButton(deleteLayerAction, "delete"));
