Index: src/org/openstreetmap/josm/gui/MainMenu.java
===================================================================
--- src/org/openstreetmap/josm/gui/MainMenu.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/MainMenu.java	(working copy)
@@ -514,7 +514,7 @@
 
         current = helpMenu.add(help); // FIXME why is help not a JosmAction?
         current.setAccelerator(Shortcut.registerShortcut("system:help", tr("Help"), KeyEvent.VK_F1,
-                Shortcut.GROUP_DIRECT).getKeyStroke());
+                Shortcut.DIRECT).getKeyStroke());
         add(helpMenu, about);
 
 
Index: src/org/openstreetmap/josm/gui/MainApplet.java
===================================================================
--- src/org/openstreetmap/josm/gui/MainApplet.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/MainApplet.java	(working copy)
@@ -38,7 +38,7 @@
     public static final class UploadPreferencesAction extends JosmAction {
         public UploadPreferencesAction() {
             super(tr("Upload Preferences"), "upload-preferences", tr("Upload the current preferences to the server"),
-                    Shortcut.registerShortcut("applet:uploadprefs", tr("Upload Preferences"), KeyEvent.VK_U, Shortcut.GROUP_DIRECT3+Shortcut.GROUPS_ALT1), true);
+                    Shortcut.registerShortcut("applet:uploadprefs", tr("Upload Preferences"), KeyEvent.VK_U, Shortcut.ALT_CTRL_SHIFT), true);
         }
         public void actionPerformed(ActionEvent e) {
             ((ServerSidePreferences)Main.pref).upload();
Index: src/org/openstreetmap/josm/gui/tagging/TaggingPresetSearchAction.java
===================================================================
--- src/org/openstreetmap/josm/gui/tagging/TaggingPresetSearchAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/tagging/TaggingPresetSearchAction.java	(working copy)
@@ -14,7 +14,7 @@
 
     public TaggingPresetSearchAction() {
         super(tr("Search preset"), "dialogs/search", tr("Show preset search dialog"),
-                Shortcut.registerShortcut("preset:search", tr("Search presets"), KeyEvent.VK_F3, Shortcut.GROUP_DIRECT), false);
+                Shortcut.registerShortcut("preset:search", tr("Search presets"), KeyEvent.VK_F3, Shortcut.DIRECT), false);
         putValue("toolbar", "presets/search");
         Main.toolbar.register(this);
     }
Index: src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(working copy)
@@ -86,7 +86,7 @@
     public ValidatorDialog() {
         super(tr("Validation Results"), "validator", tr("Open the validation window."),
                 Shortcut.registerShortcut("subwindow:validator", tr("Toggle: {0}", tr("Validation results")),
-                        KeyEvent.VK_V, Shortcut.GROUP_LAYER+Shortcut.GROUPS_ALT1), 150);
+                        KeyEvent.VK_V, Shortcut.ALT_SHIFT), 150);
 
         popupMenu = new JPopupMenu();
 
Index: src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(working copy)
@@ -109,7 +109,7 @@
     public ConflictDialog() {
         super(tr("Conflict"), "conflict", tr("Resolve conflicts."),
                 Shortcut.registerShortcut("subwindow:conflict", tr("Toggle: {0}", tr("Conflict")),
-                KeyEvent.VK_C, Shortcut.GROUP_LAYER+Shortcut.GROUPS_ALT1), 100);
+                KeyEvent.VK_C, Shortcut.ALT_SHIFT), 100);
 
         build();
         refreshView();
Index: src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java	(working copy)
@@ -67,7 +67,7 @@
 
     public UserListDialog() {
         super(tr("Authors"), "userlist", tr("Open a list of people working on the selected objects."),
-                Shortcut.registerShortcut("subwindow:authors", tr("Toggle: {0}", tr("Authors")), KeyEvent.VK_A, Shortcut.GROUP_LAYER+Shortcut.GROUPS_ALT1), 150);
+                Shortcut.registerShortcut("subwindow:authors", tr("Toggle: {0}", tr("Authors")), KeyEvent.VK_A, Shortcut.ALT_SHIFT), 150);
 
         build();
     }
Index: src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(working copy)
@@ -128,7 +128,7 @@
     public SelectionListDialog() {
         super(tr("Selection"), "selectionlist", tr("Open a selection list window."),
                 Shortcut.registerShortcut("subwindow:selection", tr("Toggle: {0}",
-                tr("Current Selection")), KeyEvent.VK_T, Shortcut.GROUP_LAYER+
+                tr("Current Selection")), KeyEvent.VK_T, Shortcut.ALT+
                 Shortcut.GROUPS_ALT1),
                 150, // default height
                 true // default is "show dialog"
Index: src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java	(working copy)
@@ -69,7 +69,7 @@
     public FilterDialog(){
         super(tr("Filter"), "filter", tr("Filter objects and hide/disable them."),
                 Shortcut.registerShortcut("subwindow:filter", tr("Toggle: {0}", tr("Filter")),
-                KeyEvent.VK_F, Shortcut.GROUP_LAYER+Shortcut.GROUPS_ALT1), 162);
+                KeyEvent.VK_F, Shortcut.ALT_SHIFT), 162);
         build();
 
         MultikeyActionsHandler.getInstance().addAction(new EnableFilterAction());
@@ -91,11 +91,11 @@
 
     private static final Shortcut ENABLE_FILTER_SHORTCUT
     = Shortcut.registerShortcut("core_multikey:enableFilter", tr("Multikey: {0}", tr("Enable filter")),
-    KeyEvent.VK_E, Shortcut.GROUP_DIRECT2+Shortcut.GROUPS_ALT2);
+    KeyEvent.VK_E, Shortcut.ALT_CTRL);
 
     private static final Shortcut HIDING_FILTER_SHORTCUT
     = Shortcut.registerShortcut("core_multikey:hidingFilter", tr("Multikey: {0}", tr("Hide filter")),
-    KeyEvent.VK_H, Shortcut.GROUP_DIRECT2+Shortcut.GROUPS_ALT2);
+    KeyEvent.VK_H, Shortcut.ALT_CTRL);
 
 
     protected final String[] columnToolTips = {
Index: src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(working copy)
@@ -653,7 +653,7 @@
     public PropertiesDialog(MapFrame mapFrame) {
         super(tr("Properties/Memberships"), "propertiesdialog", tr("Properties for selected objects."),
                 Shortcut.registerShortcut("subwindow:properties", tr("Toggle: {0}", tr("Properties/Memberships")), KeyEvent.VK_P,
-                        Shortcut.GROUP_LAYER+Shortcut.GROUPS_ALT1), 150, true);
+                        Shortcut.ALT_SHIFT), 150, true);
 
         // setting up the properties table
         propertyMenu = new JPopupMenu();
@@ -1060,7 +1060,7 @@
         public DeleteAction() {
             super(tr("Delete"), "dialogs/delete", tr("Delete the selected key in all objects"),
                     Shortcut.registerShortcut("properties:delete", tr("Delete Properties"), KeyEvent.VK_D,
-                            Shortcut.GROUP_DIRECT3+Shortcut.GROUPS_ALT1), false);
+                            Shortcut.ALT_CTRL_SHIFT), false);
             updateEnabledState();
         }
 
@@ -1161,7 +1161,7 @@
         public AddAction() {
             super(tr("Add"), "dialogs/add", tr("Add a new key/value pair to all objects"),
                     Shortcut.registerShortcut("properties:add", tr("Add Property"), KeyEvent.VK_A,
-                            Shortcut.GROUP_DIRECT2), false);
+                            Shortcut.ALT), false);
         }
 
         @Override
@@ -1174,7 +1174,7 @@
         public EditAction() {
             super(tr("Edit"), "dialogs/edit", tr("Edit the value of the selected key for all objects"),
                     Shortcut.registerShortcut("properties:edit", tr("Edit Properties"), KeyEvent.VK_S,
-                            Shortcut.GROUP_DIRECT2), false);
+                            Shortcut.ALT), false);
             updateEnabledState();
         }
 
Index: src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java	(working copy)
@@ -63,7 +63,7 @@
     public HistoryDialog() {
         super(tr("History"), "history", tr("Display the history of all selected items."),
                 Shortcut.registerShortcut("subwindow:history", tr("Toggle: {0}", tr("History")), KeyEvent.VK_H,
-                        Shortcut.GROUP_LAYER+Shortcut.GROUPS_ALT1), 150);
+                        Shortcut.ALT_SHIFT), 150);
         build();
         HelpUtil.setHelpContext(this, HelpUtil.ht("/Dialog/History"));
     }
Index: src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(working copy)
@@ -73,7 +73,7 @@
     public CommandStackDialog(final MapFrame mapFrame) {
         super(tr("Command Stack"), "commandstack", tr("Open a list of all commands (undo buffer)."),
                 Shortcut.registerShortcut("subwindow:commandstack", tr("Toggle: {0}",
-                tr("Command Stack")), KeyEvent.VK_O, Shortcut.GROUP_LAYER
+                tr("Command Stack")), KeyEvent.VK_O, Shortcut.ALT
                 +Shortcut.GROUPS_ALT1), 100, true);
         undoTree.addMouseListener(new PopupMenuHandler());
         undoTree.setRootVisible(false);
Index: src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(working copy)
@@ -149,7 +149,7 @@
 
         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);
+                    tr("Toggle visibility of layer: {0}", (i+1)), k[i], Shortcut.ALT);
             visibilityToggleActions[i] = new ToggleLayerIndexVisibility(i);
             Main.registerActionShortcut(visibilityToggleActions[i], visibilityToggleShortcuts[i]);
         }
@@ -161,7 +161,7 @@
     protected LayerListDialog(MapFrame mapFrame) {
         super(tr("Layers"), "layerlist", tr("Open a list of all loaded layers."),
                 Shortcut.registerShortcut("subwindow:layers", tr("Toggle: {0}", tr("Layers")), KeyEvent.VK_L,
-                Shortcut.GROUPS_ALT1+Shortcut.GROUP_LAYER), 100, true);
+                Shortcut.ALT_SHIFT), 100, true);
 
         // create the models
         //
@@ -442,7 +442,7 @@
             putValue(SHORT_DESCRIPTION, tr("Toggle visible state of the selected layer."));
             putValue("help", HelpUtil.ht("/Dialog/LayerList#ShowHideLayer"));
             Shortcut.registerShortcut("core_multikey:showHideLayer", tr("Multikey: {0}",
-            tr("Show/hide layer")), KeyEvent.VK_S, Shortcut.GROUP_DIRECT+Shortcut.GROUPS_ALT1).setAccelerator(this);
+            tr("Show/hide layer")), KeyEvent.VK_S, Shortcut.SHIFT).setAccelerator(this);
             if (init) {
                 updateEnabledState();
             }
@@ -630,7 +630,7 @@
             putValue(SMALL_ICON, ImageProvider.get("dialogs", "activate"));
             putValue(SHORT_DESCRIPTION, tr("Activate the selected layer"));
             Shortcut.registerShortcut("core_multikey:activateLayer", tr("Multikey: {0}",
-            tr("Activate layer")), KeyEvent.VK_A, Shortcut.GROUP_DIRECT+Shortcut.GROUPS_ALT1).setAccelerator(this);
+            tr("Activate layer")), KeyEvent.VK_A, Shortcut.SHIFT).setAccelerator(this);
             putValue("help", HelpUtil.ht("/Dialog/LayerList#ActivateLayer"));
         }
 
Index: src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(working copy)
@@ -88,7 +88,7 @@
     public RelationListDialog() {
         super(tr("Relations"), "relationlist", tr("Open a list of all relations."),
                 Shortcut.registerShortcut("subwindow:relations", tr("Toggle: {0}", tr("Relations")),
-                KeyEvent.VK_R, Shortcut.GROUP_LAYER+Shortcut.GROUPS_ALT1), 150);
+                KeyEvent.VK_R, Shortcut.ALT_SHIFT), 150);
 
         // create the list of relations
         //
Index: src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java	(working copy)
@@ -86,7 +86,7 @@
     public MapPaintDialog() {
         super(tr("Map Paint Styles"), "mapstyle", tr("configure the map painting style"),
             Shortcut.registerShortcut("subwindow:mappaint", tr("Toggle: {0}", tr("MapPaint")),
-            KeyEvent.VK_M, Shortcut.GROUP_LAYER+Shortcut.GROUPS_ALT1), 150);
+            KeyEvent.VK_M, Shortcut.ALT_SHIFT), 150);
         build();
     }
 
Index: src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(working copy)
@@ -976,7 +976,7 @@
             putValue(SMALL_ICON, ImageProvider.get("dialogs", "sort"));
             putValue(NAME, tr("Sort"));
             Shortcut sc = Shortcut.registerShortcut("relationeditor:sort", tr("Relation Editor: Sort"),
-                KeyEvent.VK_END, Shortcut.GROUP_DIRECT2);
+                KeyEvent.VK_END, Shortcut.ALT);
             sc.setAccelerator(this);
             putValue(SHORT_DESCRIPTION, Main.platform.makeTooltip(tooltip, sc));
             updateEnabledState();
@@ -1001,7 +1001,7 @@
             putValue(SMALL_ICON, ImageProvider.get("dialogs/relation", "reverse"));
             putValue(NAME, tr("Reverse"));
         //  Shortcut.register Shortcut("relationeditor:reverse", tr("Relation Editor: Reverse"),
-        //      KeyEvent.VK_END, Shortcut.GROUP_DIRECT2)
+        //      KeyEvent.VK_END, Shortcut.ALT)
             updateEnabledState();
         }
 
@@ -1024,7 +1024,7 @@
             putValue(SMALL_ICON, ImageProvider.get("dialogs", "moveup"));
             // putValue(NAME, tr("Move Up"));
             Shortcut sc = Shortcut.registerShortcut("relationeditor:moveup", tr("Relation Editor: Move Up"),
-                KeyEvent.VK_UP, Shortcut.GROUP_DIRECT2);
+                KeyEvent.VK_UP, Shortcut.ALT);
             sc.setAccelerator(this);
             putValue(SHORT_DESCRIPTION, Main.platform.makeTooltip(tooltip, sc));
             setEnabled(false);
@@ -1045,7 +1045,7 @@
             putValue(SMALL_ICON, ImageProvider.get("dialogs", "movedown"));
             // putValue(NAME, tr("Move Down"));
             Shortcut sc = Shortcut.registerShortcut("relationeditor:movedown", tr("Relation Editor: Move Down"),
-                KeyEvent.VK_DOWN, Shortcut.GROUP_DIRECT2);
+                KeyEvent.VK_DOWN, Shortcut.ALT);
             sc.setAccelerator(this);
             putValue(SHORT_DESCRIPTION, Main.platform.makeTooltip(tooltip, sc));
             setEnabled(false);
@@ -1066,7 +1066,7 @@
             putValue(SMALL_ICON, ImageProvider.get("dialogs", "remove"));
             putValue(NAME, tr("Remove"));
             Shortcut sc = Shortcut.registerShortcut("relationeditor:remove", tr("Relation Editor: Remove"),
-                KeyEvent.VK_DELETE, Shortcut.GROUP_DIRECT2);
+                KeyEvent.VK_DELETE, Shortcut.ALT);
             sc.setAccelerator(this);
             putValue(SHORT_DESCRIPTION, Main.platform.makeTooltip(tooltip, sc));
             setEnabled(false);
@@ -1403,7 +1403,7 @@
             putValue(SMALL_ICON, ImageProvider.get("dialogs/relation", "downloadincomplete"));
             putValue(NAME, tr("Download Members"));
             Shortcut sc = Shortcut.registerShortcut("relationeditor:downloadincomplete", tr("Relation Editor: Download Members"),
-                KeyEvent.VK_HOME, Shortcut.GROUP_DIRECT2);
+                KeyEvent.VK_HOME, Shortcut.ALT);
             sc.setAccelerator(this);
             putValue(SHORT_DESCRIPTION, Main.platform.makeTooltip(tooltip, sc));
             updateEnabledState();
@@ -1435,7 +1435,7 @@
             putValue(SMALL_ICON, ImageProvider.get("dialogs/relation", "downloadincompleteselected"));
             putValue(NAME, tr("Download Members"));
         //  Shortcut.register Shortcut("relationeditor:downloadincomplete", tr("Relation Editor: Download Members"),
-        //      KeyEvent.VK_K, Shortcut.GROUP_DIRECT2)
+        //      KeyEvent.VK_K, Shortcut.ALT)
             updateEnabledState();
         }
 
@@ -1681,7 +1681,7 @@
     class PasteTagsAction extends AbstractAction {
 
         public PasteTagsAction() {
-            registerCopyPasteAction(this, "PASTE_TAGS", Shortcut.registerShortcut("system:pastestyle", tr("Edit: {0}", tr("Paste Tags")), KeyEvent.VK_V, Shortcut.GROUP_MENU+Shortcut.GROUPS_ALT1).getKeyStroke());
+            registerCopyPasteAction(this, "PASTE_TAGS", Shortcut.registerShortcut("system:pastestyle", tr("Edit: {0}", tr("Paste Tags")), KeyEvent.VK_V, Shortcut.CTRL_SHIFT).getKeyStroke());
         }
 
         @Override
Index: src/org/openstreetmap/josm/gui/layer/JumpToMarkerActions.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/JumpToMarkerActions.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/layer/JumpToMarkerActions.java	(working copy)
@@ -34,7 +34,7 @@
 
         public JumpToNextMarker(JumpToMarkerLayer layer) {
             Shortcut.registerShortcut("core_multikey:nextMarker", tr("Multikey: {0}", tr("Next marker")),
-                KeyEvent.VK_J, Shortcut.GROUP_DIRECT2+Shortcut.GROUPS_ALT2).setAccelerator(this);
+                KeyEvent.VK_J, Shortcut.ALT_CTRL).setAccelerator(this);
             putValue(SHORT_DESCRIPTION, tr("Jump to next marker"));
             putValue(NAME, tr("Jump to next marker"));
 
@@ -90,7 +90,7 @@
             this.layer = (Layer)layer;
 
             Shortcut.registerShortcut("core_multikey:previousMarker", tr("Multikey: {0}", tr("Previos marker")),
-                KeyEvent.VK_P, Shortcut.GROUP_DIRECT2+Shortcut.GROUPS_ALT2).setAccelerator(this);
+                KeyEvent.VK_P, Shortcut.ALT_CTRL).setAccelerator(this);
             putValue(SHORT_DESCRIPTION, tr("Jump to previous marker"));
             putValue(NAME, tr("Jump to previous marker"));
         }
Index: src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java	(working copy)
@@ -64,7 +64,7 @@
 
     private ImageViewerDialog() {
         super(tr("Geotagged Images"), "geoimage", tr("Display geotagged images"), Shortcut.registerShortcut("tools:geotagged",
-        tr("Tool: {0}", tr("Display geotagged images")), KeyEvent.VK_Y, Shortcut.GROUP_EDIT), 200);
+        tr("Tool: {0}", tr("Display geotagged images")), KeyEvent.VK_Y, Shortcut.DIRECT), 200);
 
         /* Don't show a detached dialog right from the start. */
         if (isShowing && !isDocked) {
@@ -82,7 +82,7 @@
         btnPrevious = new JButton(prevAction);
         btnPrevious.setPreferredSize(buttonDim);
         Shortcut scPrev = Shortcut.registerShortcut(
-                "geoimage:previous", tr("Geoimage: {0}", tr("Show previous Image")), KeyEvent.VK_PAGE_UP, Shortcut.GROUP_DIRECT);
+                "geoimage:previous", tr("Geoimage: {0}", tr("Show previous Image")), KeyEvent.VK_PAGE_UP, Shortcut.DIRECT);
         final String APREVIOUS = "Previous Image";
         Main.registerActionShortcut(prevAction, scPrev);
         btnPrevious.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(scPrev.getKeyStroke(), APREVIOUS);
@@ -93,7 +93,7 @@
         JButton btnDelete = new JButton(delAction);
         btnDelete.setPreferredSize(buttonDim);
         Shortcut scDelete = Shortcut.registerShortcut(
-                "geoimage:deleteimagefromlayer", tr("Geoimage: {0}", tr("Remove photo from layer")), KeyEvent.VK_DELETE, Shortcut.GROUPS_ALT1+Shortcut.GROUP_DIRECT);
+                "geoimage:deleteimagefromlayer", tr("Geoimage: {0}", tr("Remove photo from layer")), KeyEvent.VK_DELETE, Shortcut.SHIFT);
         Main.registerActionShortcut(delAction, scDelete);
         btnDelete.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(scDelete.getKeyStroke(), DELETE_TEXT);
         btnDelete.getActionMap().put(DELETE_TEXT, delAction);
@@ -102,7 +102,7 @@
         JButton btnDeleteFromDisk = new JButton(delFromDiskAction);
         btnDeleteFromDisk.setPreferredSize(buttonDim);
         Shortcut scDeleteFromDisk = Shortcut.registerShortcut(
-                "geoimage:deletefilefromdisk", tr("Geoimage: {0}", tr("Delete File from disk")), KeyEvent.VK_DELETE, Shortcut.GROUPS_ALT1+Shortcut.GROUP_HOTKEY);
+                "geoimage:deletefilefromdisk", tr("Geoimage: {0}", tr("Delete File from disk")), KeyEvent.VK_DELETE, Shortcut.CTRL_SHIFT);
         final String ADELFROMDISK = "Delete image file from disk";
         Main.registerActionShortcut(delFromDiskAction, scDeleteFromDisk);
         btnDeleteFromDisk.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(scDeleteFromDisk.getKeyStroke(), ADELFROMDISK);
@@ -112,7 +112,7 @@
         btnNext = new JButton(nextAction);
         btnNext.setPreferredSize(buttonDim);
         Shortcut scNext = Shortcut.registerShortcut(
-                "geoimage:next", tr("Geoimage: {0}", tr("Show next Image")), KeyEvent.VK_PAGE_DOWN, Shortcut.GROUP_DIRECT);
+                "geoimage:next", tr("Geoimage: {0}", tr("Show next Image")), KeyEvent.VK_PAGE_DOWN, Shortcut.DIRECT);
         final String ANEXT = "Next Image";
         Main.registerActionShortcut(nextAction, scNext);
         btnNext.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(scNext.getKeyStroke(), ANEXT);
Index: src/org/openstreetmap/josm/gui/MapMover.java
===================================================================
--- src/org/openstreetmap/josm/gui/MapMover.java	(revision 4979)
+++ src/org/openstreetmap/josm/gui/MapMover.java	(working copy)
@@ -80,32 +80,32 @@
 
         if (contentPane != null) {
             contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
-                Shortcut.registerShortcut("system:movefocusright", tr("Map: {0}", tr("Move right")), KeyEvent.VK_RIGHT, Shortcut.GROUP_HOTKEY).getKeyStroke(),
+                Shortcut.registerShortcut("system:movefocusright", tr("Map: {0}", tr("Move right")), KeyEvent.VK_RIGHT, Shortcut.CTRL).getKeyStroke(),
                 "MapMover.Zoomer.right");
             contentPane.getActionMap().put("MapMover.Zoomer.right", new ZoomerAction("right"));
 
             contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
-                Shortcut.registerShortcut("system:movefocusleft", tr("Map: {0}", tr("Move left")), KeyEvent.VK_LEFT, Shortcut.GROUP_HOTKEY).getKeyStroke(),
+                Shortcut.registerShortcut("system:movefocusleft", tr("Map: {0}", tr("Move left")), KeyEvent.VK_LEFT, Shortcut.CTRL).getKeyStroke(),
                 "MapMover.Zoomer.left");
             contentPane.getActionMap().put("MapMover.Zoomer.left", new ZoomerAction("left"));
 
             contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
-                Shortcut.registerShortcut("system:movefocusup", tr("Map: {0}", tr("Move up")), KeyEvent.VK_UP, Shortcut.GROUP_HOTKEY).getKeyStroke(),
+                Shortcut.registerShortcut("system:movefocusup", tr("Map: {0}", tr("Move up")), KeyEvent.VK_UP, Shortcut.CTRL).getKeyStroke(),
                 "MapMover.Zoomer.up");
             contentPane.getActionMap().put("MapMover.Zoomer.up", new ZoomerAction("up"));
 
             contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
-                Shortcut.registerShortcut("system:movefocusdown", tr("Map: {0}", tr("Move down")), KeyEvent.VK_DOWN, Shortcut.GROUP_HOTKEY).getKeyStroke(),
+                Shortcut.registerShortcut("system:movefocusdown", tr("Map: {0}", tr("Move down")), KeyEvent.VK_DOWN, Shortcut.CTRL).getKeyStroke(),
                 "MapMover.Zoomer.down");
             contentPane.getActionMap().put("MapMover.Zoomer.down", new ZoomerAction("down"));
 
             contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
-                Shortcut.registerShortcut("view:zoominalternate", tr("Map: {0}", tr("Zoom in")), KeyEvent.VK_COMMA, Shortcut.GROUP_HOTKEY).getKeyStroke(),
+                Shortcut.registerShortcut("view:zoominalternate", tr("Map: {0}", tr("Zoom in")), KeyEvent.VK_COMMA, Shortcut.CTRL).getKeyStroke(),
                 "MapMover.Zoomer.in");
             contentPane.getActionMap().put("MapMover.Zoomer.in", new ZoomerAction(","));
 
             contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
-                Shortcut.registerShortcut("view:zoomoutalternate", tr("Map: {0}", tr("Zoom out")), KeyEvent.VK_PERIOD, Shortcut.GROUP_HOTKEY).getKeyStroke(),
+                Shortcut.registerShortcut("view:zoomoutalternate", tr("Map: {0}", tr("Zoom out")), KeyEvent.VK_PERIOD, Shortcut.CTRL).getKeyStroke(),
                 "MapMover.Zoomer.out");
             contentPane.getActionMap().put("MapMover.Zoomer.out", new ZoomerAction("."));
         }
Index: src/org/openstreetmap/josm/actions/MoveAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/MoveAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/MoveAction.java	(working copy)
@@ -49,13 +49,13 @@
     private static Shortcut calltosupermustbefirststatementinconstructor(Direction dir) {
         Shortcut sc;
         if        (dir == Direction.UP)   {
-            sc = Shortcut.registerShortcut("core:moveup",    tr("Move objects {0}", tr("up")), KeyEvent.VK_UP,    Shortcut.GROUPS_ALT1+Shortcut.GROUP_DIRECT);
+            sc = Shortcut.registerShortcut("core:moveup",    tr("Move objects {0}", tr("up")), KeyEvent.VK_UP,    Shortcut.SHIFT);
         } else if (dir == Direction.DOWN)  {
-            sc = Shortcut.registerShortcut("core:movedown",  tr("Move objects {0}", tr("down")), KeyEvent.VK_DOWN,  Shortcut.GROUPS_ALT1+Shortcut.GROUP_DIRECT);
+            sc = Shortcut.registerShortcut("core:movedown",  tr("Move objects {0}", tr("down")), KeyEvent.VK_DOWN,  Shortcut.SHIFT);
         } else if (dir == Direction.LEFT)  {
-            sc = Shortcut.registerShortcut("core:moveleft",  tr("Move objects {0}", tr("left")), KeyEvent.VK_LEFT,  Shortcut.GROUPS_ALT1+Shortcut.GROUP_DIRECT);
+            sc = Shortcut.registerShortcut("core:moveleft",  tr("Move objects {0}", tr("left")), KeyEvent.VK_LEFT,  Shortcut.SHIFT);
         } else { //dir == Direction.RIGHT) {
-            sc = Shortcut.registerShortcut("core:moveright", tr("Move objects {0}", tr("right")), KeyEvent.VK_RIGHT, Shortcut.GROUPS_ALT1+Shortcut.GROUP_DIRECT);
+            sc = Shortcut.registerShortcut("core:moveright", tr("Move objects {0}", tr("right")), KeyEvent.VK_RIGHT, Shortcut.SHIFT);
         }
         return sc;
     }
Index: src/org/openstreetmap/josm/actions/CopyAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/CopyAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/CopyAction.java	(working copy)
@@ -22,7 +22,7 @@
     public CopyAction() {
         super(tr("Copy"), "copy",
                 tr("Copy selected objects to paste buffer."),
-                Shortcut.registerShortcut("system:copy", tr("Edit: {0}", tr("Copy")), KeyEvent.VK_C, Shortcut.GROUP_MENU), true);
+                Shortcut.registerShortcut("system:copy", tr("Edit: {0}", tr("Copy")), KeyEvent.VK_C, Shortcut.CTRL), true);
         putValue("help", ht("/Action/Copy"));
     }
 
Index: src/org/openstreetmap/josm/actions/ZoomInAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/ZoomInAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/ZoomInAction.java	(working copy)
@@ -19,14 +19,14 @@
                 tr("Zoom In"),
                 "dialogs/zoomin",
                 tr("Zoom In"),
-                Shortcut.registerShortcut("view:zoomin", tr("View: {0}", tr("Zoom In")),KeyEvent.VK_PLUS, Shortcut.GROUP_DIRECT),
+                Shortcut.registerShortcut("view:zoomin", tr("View: {0}", tr("Zoom In")),KeyEvent.VK_PLUS, Shortcut.DIRECT),
                 true
         );
         putValue("help", ht("/Action/ZoomIn"));
         // make numpad + behave like +
         Main.registerActionShortcut(this,
             Shortcut.registerShortcut("view:zoominkeypad", tr("View: {0}", tr("Zoom In (Keypad)")),
-                KeyEvent.VK_ADD, Shortcut.GROUP_DIRECT));
+                KeyEvent.VK_ADD, Shortcut.DIRECT));
     }
 
     public void actionPerformed(ActionEvent e) {
Index: src/org/openstreetmap/josm/actions/search/SearchAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/search/SearchAction.java	(working copy)
@@ -120,7 +120,7 @@
 
     public SearchAction() {
         super(tr("Search..."), "dialogs/search", tr("Search for objects."),
-                Shortcut.registerShortcut("system:find", tr("Search..."), KeyEvent.VK_F, Shortcut.GROUP_HOTKEY), true);
+                Shortcut.registerShortcut("system:find", tr("Search..."), KeyEvent.VK_F, Shortcut.CTRL), true);
         putValue("help", ht("/Action/Search"));
     }
 
Index: src/org/openstreetmap/josm/actions/DownloadReferrersAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/DownloadReferrersAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/DownloadReferrersAction.java	(working copy)
@@ -27,7 +27,7 @@
 
     public DownloadReferrersAction() {
         super(tr("Download parent ways/relations..."), "downloadreferrers", tr("Download objects referring to one of the selected objects"),
-                Shortcut.registerShortcut("file:downloadreferrers", tr("File: {0}", tr("Download parent ways/relations...")), KeyEvent.VK_D, Shortcut.GROUPS_ALT2+Shortcut.GROUP_HOTKEY), true);
+                Shortcut.registerShortcut("file:downloadreferrers", tr("File: {0}", tr("Download parent ways/relations...")), KeyEvent.VK_D, Shortcut.ALT_CTRL), true);
         putValue("help", ht("/Action/DownloadParentWaysAndRelation"));
     }
 
Index: src/org/openstreetmap/josm/actions/CloseChangesetAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/CloseChangesetAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/CloseChangesetAction.java	(working copy)
@@ -36,7 +36,7 @@
             tr("Closes open changesets"),
             Shortcut.registerShortcut("system:closechangeset",
                 tr("File: {0}", tr("Closes open changesets")),
-                KeyEvent.VK_Q, Shortcut.GROUPS_ALT2+Shortcut.GROUP_HOTKEY),
+                KeyEvent.VK_Q, Shortcut.ALT_CTRL),
             true
         );
         putValue("help", ht("/Action/CloseChangeset"));
Index: src/org/openstreetmap/josm/actions/InfoAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/InfoAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/InfoAction.java	(working copy)
@@ -20,7 +20,7 @@
         super(tr("Advanced info"), "about",
             tr("Display advanced object information about OSM nodes, ways, or relations."),
             Shortcut.registerShortcut("core:info",
-                tr("Advanced info"), KeyEvent.VK_I, Shortcut.GROUP_HOTKEY),
+                tr("Advanced info"), KeyEvent.VK_I, Shortcut.CTRL),
             true, "action/info", true);
         putValue("help", ht("/Action/InfoAboutElements"));
     }
Index: src/org/openstreetmap/josm/actions/ReverseWayAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/ReverseWayAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/ReverseWayAction.java	(working copy)
@@ -65,7 +65,7 @@
 
     public ReverseWayAction() {
         super(tr("Reverse Ways"), "wayflip", tr("Reverse the direction of all selected ways."),
-                Shortcut.registerShortcut("tools:reverse", tr("Tool: {0}", tr("Reverse Ways")), KeyEvent.VK_R, Shortcut.GROUP_EDIT), true);
+                Shortcut.registerShortcut("tools:reverse", tr("Tool: {0}", tr("Reverse Ways")), KeyEvent.VK_R, Shortcut.DIRECT), true);
         putValue("help", ht("/Action/ReverseWays"));
     }
 
Index: src/org/openstreetmap/josm/actions/UnGlueAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/UnGlueAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/UnGlueAction.java	(working copy)
@@ -52,7 +52,7 @@
      */
     public UnGlueAction() {
         super(tr("UnGlue Ways"), "unglueways", tr("Duplicate nodes that are used by multiple ways."),
-                Shortcut.registerShortcut("tools:unglue", tr("Tool: {0}", tr("UnGlue Ways")), KeyEvent.VK_G, Shortcut.GROUP_EDIT), true);
+                Shortcut.registerShortcut("tools:unglue", tr("Tool: {0}", tr("UnGlue Ways")), KeyEvent.VK_G, Shortcut.DIRECT), true);
         putValue("help", ht("/Action/UnGlue"));
     }
 
Index: src/org/openstreetmap/josm/actions/DeleteAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/DeleteAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/DeleteAction.java	(working copy)
@@ -16,7 +16,7 @@
 
     public DeleteAction() {
         super(tr("Delete"), "dialogs/delete", tr("Delete selected objects."),
-                Shortcut.registerShortcut("system:delete", tr("Edit: {0}", tr("Delete")), KeyEvent.VK_DELETE, Shortcut.GROUP_DIRECT), true);
+                Shortcut.registerShortcut("system:delete", tr("Edit: {0}", tr("Delete")), KeyEvent.VK_DELETE, Shortcut.DIRECT), true);
         putValue("help", ht("/Action/Delete"));
     }
 
Index: src/org/openstreetmap/josm/actions/FullscreenToggleAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/FullscreenToggleAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/FullscreenToggleAction.java	(working copy)
@@ -35,7 +35,7 @@
                 tr("Fullscreen view"),
                 null, /* no icon */
                 tr("Toggle fullscreen view"),
-                Shortcut.registerShortcut("menu:view:fullscreen", tr("Toggle fullscreen view"),KeyEvent.VK_F11, Shortcut.GROUP_DIRECT),
+                Shortcut.registerShortcut("menu:view:fullscreen", tr("Toggle fullscreen view"),KeyEvent.VK_F11, Shortcut.DIRECT),
                 false /* register */
         );
         putValue("help", ht("/Action/FullscreenView"));
Index: src/org/openstreetmap/josm/actions/UndoAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/UndoAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/UndoAction.java	(working copy)
@@ -23,7 +23,7 @@
      */
     public UndoAction() {
         super(tr("Undo"), "undo", tr("Undo the last action."),
-                Shortcut.registerShortcut("system:undo", tr("Edit: {0}", tr("Undo")), KeyEvent.VK_Z, Shortcut.GROUP_MENU), true);
+                Shortcut.registerShortcut("system:undo", tr("Edit: {0}", tr("Undo")), KeyEvent.VK_Z, Shortcut.CTRL), true);
         setEnabled(false);
         putValue("help", ht("/Action/Undo"));
     }
Index: src/org/openstreetmap/josm/actions/DownloadAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/DownloadAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/DownloadAction.java	(working copy)
@@ -27,7 +27,7 @@
 public class DownloadAction extends JosmAction {
     public DownloadAction() {
         super(tr("Download from OSM..."), "download", tr("Download map data from the OSM server."),
-                Shortcut.registerShortcut("file:download", tr("File: {0}", tr("Download from OSM...")), KeyEvent.VK_DOWN, Shortcut.GROUP_HOTKEY+Shortcut.GROUPS_ALT1), true);
+                Shortcut.registerShortcut("file:download", tr("File: {0}", tr("Download from OSM...")), KeyEvent.VK_DOWN, Shortcut.CTRL_SHIFT), true);
         putValue("help", ht("/Action/Download"));
     }
 
Index: src/org/openstreetmap/josm/actions/FollowLineAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/FollowLineAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/FollowLineAction.java	(working copy)
@@ -39,7 +39,7 @@
                 tr("Continues drawing a line that shares nodes with another line."),
                 Shortcut.registerShortcut("tools:followline", tr(
                 "Tool: {0}", tr("Follow")),
-                KeyEvent.VK_F, Shortcut.GROUP_EDIT), true);
+                KeyEvent.VK_F, Shortcut.DIRECT), true);
     }
 
     @Override
Index: src/org/openstreetmap/josm/actions/AboutAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/AboutAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/AboutAction.java	(working copy)
@@ -38,7 +38,7 @@
     public AboutAction() {
         super(tr("About"), "about", tr("Display the about screen."),
             Shortcut.registerShortcut("system:about", tr("About"),
-            KeyEvent.VK_F1, Shortcut.GROUP_DIRECT+Shortcut.GROUPS_ALT1), true);
+            KeyEvent.VK_F1, Shortcut.SHIFT), true);
     }
 
     public void actionPerformed(ActionEvent e) {
Index: src/org/openstreetmap/josm/actions/UploadAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/UploadAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/UploadAction.java	(working copy)
@@ -86,7 +86,7 @@
 
     public UploadAction() {
         super(tr("Upload data"), "upload", tr("Upload all changes in the active data layer to the OSM server"),
-                Shortcut.registerShortcut("file:upload", tr("File: {0}", tr("Upload data")), KeyEvent.VK_UP, Shortcut.GROUP_HOTKEY+Shortcut.GROUPS_ALT1), true);
+                Shortcut.registerShortcut("file:upload", tr("File: {0}", tr("Upload data")), KeyEvent.VK_UP, Shortcut.CTRL_SHIFT), true);
         putValue("help", ht("/Action/Upload"));
     }
 
Index: src/org/openstreetmap/josm/actions/CreateCircleAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/CreateCircleAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/CreateCircleAction.java	(working copy)
@@ -43,7 +43,7 @@
     public CreateCircleAction() {
         super(tr("Create Circle"), "createcircle", tr("Create a circle from three selected nodes."),
             Shortcut.registerShortcut("tools:createcircle", tr("Tool: {0}", tr("Create Circle")),
-            KeyEvent.VK_O, Shortcut.GROUP_EDIT+Shortcut.GROUPS_ALT1), true);
+            KeyEvent.VK_O, Shortcut.SHIFT), true);
         putValue("help", ht("/Action/CreateCircle"));
     }
 
Index: src/org/openstreetmap/josm/actions/UpdateSelectionAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/UpdateSelectionAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/UpdateSelectionAction.java	(working copy)
@@ -87,7 +87,7 @@
                 tr("Updates the currently selected objects from the server (re-downloads data)"),
                 Shortcut.registerShortcut("file:updateselection",
                         tr("File: {0}", tr("Update selection")), KeyEvent.VK_U,
-                        Shortcut.GROUPS_ALT2+Shortcut.GROUP_HOTKEY),
+                        Shortcut.ALT_CTRL),
                 true);
         putValue("help", ht("/Action/UpdateSelection"));
     }
Index: src/org/openstreetmap/josm/actions/RedoAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/RedoAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/RedoAction.java	(working copy)
@@ -23,7 +23,7 @@
      */
     public RedoAction() {
         super(tr("Redo"), "redo", tr("Redo the last undone action."),
-                Shortcut.registerShortcut("system:redo", tr("Edit: {0}", tr("Redo")), KeyEvent.VK_Y, Shortcut.GROUP_MENU), true);
+                Shortcut.registerShortcut("system:redo", tr("Edit: {0}", tr("Redo")), KeyEvent.VK_Y, Shortcut.CTRL), true);
         setEnabled(false);
         putValue("help", ht("/Action/Redo"));
     }
Index: src/org/openstreetmap/josm/actions/PasteTagsAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/PasteTagsAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/PasteTagsAction.java	(working copy)
@@ -34,7 +34,7 @@
         super(tr("Paste Tags"), "pastetags",
                 tr("Apply tags of contents of paste buffer to all selected items."),
                 Shortcut.registerShortcut("system:pastestyle", tr("Edit: {0}", tr("Paste Tags")),
-                KeyEvent.VK_V, Shortcut.GROUP_MENU+Shortcut.GROUPS_ALT1), true);
+                KeyEvent.VK_V, Shortcut.CTRL_SHIFT), true);
         Main.pasteBuffer.addPasteBufferChangedListener(this);
         putValue("help", ht("/Action/PasteTags"));
     }
Index: src/org/openstreetmap/josm/actions/MergeLayerAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/MergeLayerAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/MergeLayerAction.java	(working copy)
@@ -19,7 +19,7 @@
         super(tr("Merge layer"), "dialogs/mergedown",
             tr("Merge the current layer into another layer"),
             Shortcut.registerShortcut("system:merge", tr("Edit: {0}",
-            tr("Merge")), KeyEvent.VK_M, Shortcut.GROUP_MENU),
+            tr("Merge")), KeyEvent.VK_M, Shortcut.CTRL),
             true, "action/mergelayer", true);
         putValue("help", ht("/Action/MergeLayer"));
     }
Index: src/org/openstreetmap/josm/actions/CombineWayAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/CombineWayAction.java	(working copy)
@@ -52,7 +52,7 @@
 
     public CombineWayAction() {
         super(tr("Combine Way"), "combineway", tr("Combine several ways into one."),
-                Shortcut.registerShortcut("tools:combineway", tr("Tool: {0}", tr("Combine Way")), KeyEvent.VK_C, Shortcut.GROUP_EDIT), true);
+                Shortcut.registerShortcut("tools:combineway", tr("Tool: {0}", tr("Combine Way")), KeyEvent.VK_C, Shortcut.DIRECT), true);
         putValue("help", ht("/Action/CombineWay"));
     }
 
Index: src/org/openstreetmap/josm/actions/PreferencesAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/PreferencesAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/PreferencesAction.java	(working copy)
@@ -23,7 +23,7 @@
      */
     public PreferencesAction() {
         super(tr("Preferences..."), "preference", tr("Open a preferences dialog for global settings."),
-                Shortcut.registerShortcut("system:preferences", tr("Preferences"), KeyEvent.VK_F12, Shortcut.GROUP_DIRECT), true);
+                Shortcut.registerShortcut("system:preferences", tr("Preferences"), KeyEvent.VK_F12, Shortcut.DIRECT), true);
         putValue("help", ht("/Action/Preferences"));
     }
 
Index: src/org/openstreetmap/josm/actions/UpdateDataAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/UpdateDataAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/UpdateDataAction.java	(working copy)
@@ -25,7 +25,7 @@
                 tr("Updates the objects in the active data layer from the server."),
                 Shortcut.registerShortcut("file:updatedata",
                         tr("File: {0}", tr("Update data")),
-                        KeyEvent.VK_U, Shortcut.GROUP_HOTKEY),
+                        KeyEvent.VK_U, Shortcut.CTRL),
                 true);
         putValue("help", ht("/Action/UpdateData"));
     }
Index: src/org/openstreetmap/josm/actions/InfoWebAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/InfoWebAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/InfoWebAction.java	(working copy)
@@ -17,7 +17,7 @@
         super(tr("Advanced info (web)"), "about",
                 tr("Display object information about OSM nodes, ways, or relations in web browser."),
                 Shortcut.registerShortcut("core:infoweb",
-                        tr("Advanced info (web)"), KeyEvent.VK_I, Shortcut.GROUP_HOTKEY+Shortcut.GROUPS_ALT1),
+                        tr("Advanced info (web)"), KeyEvent.VK_I, Shortcut.CTRL_SHIFT),
                 true, "action/infoweb", true);
         putValue("help", ht("/Action/InfoAboutElementsWeb"));
     }
Index: src/org/openstreetmap/josm/actions/OpenLocationAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/OpenLocationAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/OpenLocationAction.java	(working copy)
@@ -46,7 +46,7 @@
     public OpenLocationAction() {
         /* I18N: Command to download a specific location/URL */
         super(tr("Open Location..."), "openlocation", tr("Open an URL."),
-                Shortcut.registerShortcut("system:open_location", tr("File: {0}", tr("Open Location...")), KeyEvent.VK_L, Shortcut.GROUP_MENU), true);
+                Shortcut.registerShortcut("system:open_location", tr("File: {0}", tr("Open Location...")), KeyEvent.VK_L, Shortcut.CTRL), true);
         putValue("help", ht("/Action/OpenLocation"));
         this.downloadTasks = new ArrayList<Class<? extends DownloadTask>>();
         addDownloadTaskClass(DownloadOsmTask.class);
Index: src/org/openstreetmap/josm/actions/AddNodeAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/AddNodeAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/AddNodeAction.java	(working copy)
@@ -26,7 +26,7 @@
     public AddNodeAction() {
         super(tr("Add Node..."), "addnode", tr("Add a node by entering latitude / longitude or easting / northing."),
                 Shortcut.registerShortcut("addnode", tr("Edit: {0}", tr("Add Node...")),
-                        KeyEvent.VK_D, Shortcut.GROUP_EDIT+Shortcut.GROUPS_ALT1), true);
+                        KeyEvent.VK_D, Shortcut.SHIFT), true);
         putValue("help", ht("/Action/AddNode"));
     }
 
Index: src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java	(working copy)
@@ -95,7 +95,7 @@
                 "delete",
                 tr("Delete nodes or ways."),
                 Shortcut.registerShortcut("mapmode:delete", tr("Mode: {0}",tr("Delete")),
-                KeyEvent.VK_DELETE, Shortcut.GROUP_DIRECT+Shortcut.GROUPS_ALT2),
+                KeyEvent.VK_DELETE, Shortcut.CTRL),
                 mapFrame,
                 ImageProvider.getCursor("normal", "delete"));
     }
Index: src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java	(working copy)
@@ -125,7 +125,7 @@
     public ParallelWayAction(MapFrame mapFrame) {
         super(tr("Parallel"), "parallel", tr("Make parallel copies of ways"),
             Shortcut.registerShortcut("mapmode:parallel", tr("Mode: {0}",
-            tr("Parallel")), KeyEvent.VK_P, Shortcut.GROUP_EDIT+
+            tr("Parallel")), KeyEvent.VK_P, Shortcut.DIRECT+
             Shortcut.GROUPS_ALT1), mapFrame, ImageProvider.getCursor("normal",
             "parallel"));
         putValue("help", ht("/Action/Parallel"));
Index: src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java	(working copy)
@@ -100,7 +100,7 @@
                 tr("Improve Way Accuracy mode"),
                 Shortcut.registerShortcut("mapmode:ImproveWayAccuracy",
                 tr("Mode: {0}", tr("Improve Way Accuracy")),
-                KeyEvent.VK_W, Shortcut.GROUP_EDIT), mapFrame, Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+                KeyEvent.VK_W, Shortcut.DIRECT), mapFrame, Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
 
         cursorSelect = ImageProvider.getCursor("normal", "mode");
         cursorSelectHover = ImageProvider.getCursor("hand", "mode");
Index: src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(working copy)
@@ -156,7 +156,7 @@
      */
     public SelectAction(MapFrame mapFrame) {
         super(tr("Select"), "move/move", tr("Select, move, scale and rotate objects"),
-                Shortcut.registerShortcut("mapmode:select", tr("Mode: {0}", tr("Select")), KeyEvent.VK_S, Shortcut.GROUP_EDIT),
+                Shortcut.registerShortcut("mapmode:select", tr("Mode: {0}", tr("Select")), KeyEvent.VK_S, Shortcut.DIRECT),
                 mapFrame,
                 ImageProvider.getCursor("normal", "selection"));
         mv = mapFrame.mapView;
Index: src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(working copy)
@@ -126,7 +126,7 @@
      */
     public ExtrudeAction(MapFrame mapFrame) {
         super(tr("Extrude"), "extrude/extrude", tr("Create areas"),
-                Shortcut.registerShortcut("mapmode:extrude", tr("Mode: {0}", tr("Extrude")), KeyEvent.VK_X, Shortcut.GROUP_EDIT),
+                Shortcut.registerShortcut("mapmode:extrude", tr("Mode: {0}", tr("Extrude")), KeyEvent.VK_X, Shortcut.DIRECT),
                 mapFrame,
                 ImageProvider.getCursor("normal", "rectangle"));
         putValue("help", ht("/Action/Extrude"));
Index: src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java	(working copy)
@@ -42,7 +42,7 @@
      */
     public ZoomAction(MapFrame mapFrame) {
         super(tr("Zoom"), "zoom", tr("Zoom and move map"),
-                Shortcut.registerShortcut("mapmode:zoom", tr("Mode: {0}", tr("Zoom")), KeyEvent.VK_Z, Shortcut.GROUP_EDIT),
+                Shortcut.registerShortcut("mapmode:zoom", tr("Mode: {0}", tr("Zoom")), KeyEvent.VK_Z, Shortcut.DIRECT),
                 mapFrame, ImageProvider.getCursor("normal", "zoom"));
         selectionManager = new SelectionManager(this, true, mapFrame.mapView);
     }
Index: src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(working copy)
@@ -105,11 +105,11 @@
 
     public DrawAction(MapFrame mapFrame) {
         super(tr("Draw"), "node/autonode", tr("Draw nodes"),
-            Shortcut.registerShortcut("mapmode:draw", tr("Mode: {0}", tr("Draw")), KeyEvent.VK_A, Shortcut.GROUP_EDIT),
+            Shortcut.registerShortcut("mapmode:draw", tr("Mode: {0}", tr("Draw")), KeyEvent.VK_A, Shortcut.DIRECT),
             mapFrame, ImageProvider.getCursor("crosshair", null));
 
         snappingShortcut = Shortcut.registerShortcut("mapmode:drawanglesnapping",
-            tr("Mode: Draw Angle snapping"), KeyEvent.VK_TAB, Shortcut.GROUP_EDIT);
+            tr("Mode: Draw Angle snapping"), KeyEvent.VK_TAB, Shortcut.DIRECT);
         addMenuItem();
         snapHelper.setMenuCheckBox(snapCheckboxMenuItem);
         cursorJoinNode = ImageProvider.getCursor("crosshair", "joinnode");
@@ -173,7 +173,7 @@
         });
         Main.map.statusLine.getAnglePanel().addMouseListener(snapHelper.anglePopupListener);
         backspaceShortcut = Shortcut.registerShortcut("mapmode:backspace",
-            tr("Backspace in Add mode"), KeyEvent.VK_BACK_SPACE, Shortcut.GROUP_EDIT);
+            tr("Backspace in Add mode"), KeyEvent.VK_BACK_SPACE, Shortcut.DIRECT);
         Main.registerActionShortcut(new BackSpaceAction(), backspaceShortcut);
 
         Main.map.mapView.addMouseListener(this);
Index: src/org/openstreetmap/josm/actions/DuplicateAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/DuplicateAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/DuplicateAction.java	(working copy)
@@ -19,7 +19,7 @@
     public DuplicateAction() {
         super(tr("Duplicate"), "duplicate",
                 tr("Duplicate selection by copy and immediate paste."),
-                Shortcut.registerShortcut("system:duplicate", tr("Edit: {0}", tr("Duplicate")), KeyEvent.VK_D, Shortcut.GROUP_MENU), true);
+                Shortcut.registerShortcut("system:duplicate", tr("Edit: {0}", tr("Duplicate")), KeyEvent.VK_D, Shortcut.CTRL), true);
         putValue("help", ht("/Action/Duplicate"));
     }
 
Index: src/org/openstreetmap/josm/actions/HistoryInfoWebAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/HistoryInfoWebAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/HistoryInfoWebAction.java	(working copy)
@@ -17,7 +17,7 @@
         super(tr("History (web)"), "about",
                 tr("Display history information about OSM ways, nodes, or relations in web browser."),
                 Shortcut.registerShortcut("core:historyinfoweb",
-                        tr("History (web)"), KeyEvent.VK_H, Shortcut.GROUP_DIRECT3),
+                        tr("History (web)"), KeyEvent.VK_H, Shortcut.CTRL_SHIFT),
                 true, "action/historyinfoweb", true);
         putValue("help", ht("/Action/ObjectHistoryWeb"));
     }
Index: src/org/openstreetmap/josm/actions/HistoryInfoAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/HistoryInfoAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/HistoryInfoAction.java	(working copy)
@@ -20,7 +20,7 @@
 		super(tr("History"), "about",
 				tr("Display history information about OSM ways, nodes, or relations."),
 				Shortcut.registerShortcut("core:historyinfo",
-				tr("History"), KeyEvent.VK_H, Shortcut.GROUP_HOTKEY), false);
+				tr("History"), KeyEvent.VK_H, Shortcut.CTRL), false);
 		putValue("help", ht("/Action/ObjectHistory"));
 		putValue("toolbar", "action/historyinfo");
 		Main.toolbar.register(this);
Index: src/org/openstreetmap/josm/actions/AutoScaleAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/AutoScaleAction.java	(working copy)
@@ -106,7 +106,7 @@
 
     public AutoScaleAction(String mode) {
         super(tr("Zoom to {0}", tr(mode)), "dialogs/autoscale/" + mode, tr("Zoom the view to {0}.", tr(mode)),
-                Shortcut.registerShortcut("view:zoom"+mode, tr("View: {0}", tr("Zoom to {0}", tr(mode))), getModeShortcut(mode), Shortcut.GROUP_EDIT), true);
+                Shortcut.registerShortcut("view:zoom"+mode, tr("View: {0}", tr("Zoom to {0}", tr(mode))), getModeShortcut(mode), Shortcut.DIRECT), true);
         String modeHelp = Character.toUpperCase(mode.charAt(0)) + mode.substring(1);
         putValue("help", "Action/AutoScale/" + modeHelp);
         this.mode = mode;
Index: src/org/openstreetmap/josm/actions/WireframeToggleAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/WireframeToggleAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/WireframeToggleAction.java	(working copy)
@@ -26,7 +26,7 @@
                 tr("Wireframe View"),
                 null, /* no icon */
                 tr("Enable/disable rendering the map as wireframe only"),
-                Shortcut.registerShortcut("menu:view:wireframe", tr("Toggle Wireframe view"),KeyEvent.VK_W, Shortcut.GROUP_MENU),
+                Shortcut.registerShortcut("menu:view:wireframe", tr("Toggle Wireframe view"),KeyEvent.VK_W, Shortcut.CTRL),
                 false /* register toolbar */
         );
         putValue("toolbar", "wireframe"); 
Index: src/org/openstreetmap/josm/actions/NewAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/NewAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/NewAction.java	(working copy)
@@ -16,7 +16,7 @@
 
     public NewAction() {
         super(tr("New Layer"), "new", tr("Create a new map layer."),
-                Shortcut.registerShortcut("system:new", tr("File: {0}", tr("New Layer")), KeyEvent.VK_N, Shortcut.GROUP_MENU), true);
+                Shortcut.registerShortcut("system:new", tr("File: {0}", tr("New Layer")), KeyEvent.VK_N, Shortcut.CTRL), true);
         putValue("help", ht("/Action/NewLayer"));
     }
 
Index: src/org/openstreetmap/josm/actions/ChangesetManagerToggleAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/ChangesetManagerToggleAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/ChangesetManagerToggleAction.java	(working copy)
@@ -34,7 +34,7 @@
                 tr("Toggle visibility of Changeset Manager window"),
                 Shortcut.registerShortcut("menu:windows:changesetdialog",
                         tr("Toggle visibility of Changeset Manager window"),
-                        KeyEvent.VK_C, Shortcut.GROUPS_ALT2 + Shortcut.GROUP_HOTKEY),
+                        KeyEvent.VK_C, Shortcut.ALT_CTRL),
                 true /* register shortcut */
         );
         notifySelectedState();
Index: src/org/openstreetmap/josm/actions/OpenFileAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/OpenFileAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/OpenFileAction.java	(working copy)
@@ -48,7 +48,7 @@
      */
     public OpenFileAction() {
         super(tr("Open..."), "open", tr("Open a file."),
-                Shortcut.registerShortcut("system:open", tr("File: {0}", tr("Open...")), KeyEvent.VK_O, Shortcut.GROUP_MENU));
+                Shortcut.registerShortcut("system:open", tr("File: {0}", tr("Open...")), KeyEvent.VK_O, Shortcut.CTRL));
         putValue("help", ht("/Action/Open"));
 
     }
Index: src/org/openstreetmap/josm/actions/SelectAllAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/SelectAllAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/SelectAllAction.java	(working copy)
@@ -13,7 +13,7 @@
 
     public SelectAllAction() {
         super(tr("Select All"),"selectall", tr("Select all undeleted objects in the data layer. This selects incomplete objects too."),
-                Shortcut.registerShortcut("system:selectall", tr("Edit: {0}", tr("Select All")), KeyEvent.VK_A, Shortcut.GROUP_MENU), true);
+                Shortcut.registerShortcut("system:selectall", tr("Edit: {0}", tr("Select All")), KeyEvent.VK_A, Shortcut.CTRL), true);
         putValue("help", ht("/Action/SelectAll"));
     }
 
Index: src/org/openstreetmap/josm/actions/UnselectAllAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/UnselectAllAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/UnselectAllAction.java	(working copy)
@@ -15,7 +15,7 @@
     public UnselectAllAction() {
         super(tr("Unselect All"), "unselectall", tr("Unselect all objects."),
             Shortcut.registerShortcut("edit:unselectall", tr("Edit: {0}",
-            tr("Unselect All")), KeyEvent.VK_ESCAPE, Shortcut.GROUP_DIRECT), true);
+            tr("Unselect All")), KeyEvent.VK_ESCAPE, Shortcut.DIRECT), true);
 
         putValue("help", ht("/Action/UnselectAll"));
     }
Index: src/org/openstreetmap/josm/actions/SplitWayAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/SplitWayAction.java	(working copy)
@@ -79,7 +79,7 @@
      */
     public SplitWayAction() {
         super(tr("Split Way"), "splitway", tr("Split a way at the selected node."),
-                Shortcut.registerShortcut("tools:splitway", tr("Tool: {0}", tr("Split Way")), KeyEvent.VK_P, Shortcut.GROUP_EDIT), true);
+                Shortcut.registerShortcut("tools:splitway", tr("Tool: {0}", tr("Split Way")), KeyEvent.VK_P, Shortcut.DIRECT), true);
         putValue("help", ht("/Action/SplitWay"));
     }
 
Index: src/org/openstreetmap/josm/actions/DistributeAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/DistributeAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/DistributeAction.java	(working copy)
@@ -30,7 +30,7 @@
     public DistributeAction() {
         super(tr("Distribute Nodes"), "distribute", tr("Distribute the selected nodes to equal distances along a line."),
                 Shortcut.registerShortcut("tools:distribute", tr("Tool: {0}", tr("Distribute Nodes")), KeyEvent.VK_B,
-                Shortcut.GROUP_EDIT+Shortcut.GROUPS_ALT1), true);
+                Shortcut.SHIFT), true);
         putValue("help", ht("/Action/DistributeNodes"));
     }
 
Index: src/org/openstreetmap/josm/actions/JumpToAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/JumpToAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/JumpToAction.java	(working copy)
@@ -29,7 +29,7 @@
 public class JumpToAction extends JosmAction implements MouseListener {
     public JumpToAction() {
         super(tr("Jump To Position"), null, tr("Opens a dialog that allows to jump to a specific location"), Shortcut.registerShortcut("tools:jumpto", tr("Tool: {0}", tr("Jump To Position")),
-        KeyEvent.VK_J, Shortcut.GROUP_HOTKEY), false);
+        KeyEvent.VK_J, Shortcut.CTRL), false);
         putValue("toolbar", "action/jumpto");
         Main.toolbar.register(this);
     }
Index: src/org/openstreetmap/josm/actions/UpdateModifiedAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/UpdateModifiedAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/UpdateModifiedAction.java	(working copy)
@@ -26,7 +26,7 @@
                 tr("Updates the currently modified objects from the server (re-downloads data)"),
                 Shortcut.registerShortcut("file:updatemodified",
                         tr("File: {0}", tr("Update modified")), KeyEvent.VK_M,
-                        Shortcut.GROUPS_ALT2+Shortcut.GROUP_HOTKEY),
+                        Shortcut.ALT_CTRL),
                         true);
         putValue("help", ht("/Action/UpdateModified"));
     }
Index: src/org/openstreetmap/josm/actions/audio/AudioFwdAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/audio/AudioFwdAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/audio/AudioFwdAction.java	(working copy)
@@ -16,7 +16,7 @@
 public class AudioFwdAction extends JosmAction {
     public AudioFwdAction() {
         super(trc("audio", "Forward"), "audio-fwd", trc("audio", "Jump forward"),
-        Shortcut.registerShortcut("audio:forward", tr("Audio: {0}", trc("audio", "Forward")), KeyEvent.VK_F7, Shortcut.GROUP_DIRECT), true);
+        Shortcut.registerShortcut("audio:forward", tr("Audio: {0}", trc("audio", "Forward")), KeyEvent.VK_F7, Shortcut.DIRECT), true);
     }
 
     public void actionPerformed(ActionEvent e) {
Index: src/org/openstreetmap/josm/actions/audio/AudioFasterAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/audio/AudioFasterAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/audio/AudioFasterAction.java	(working copy)
@@ -13,7 +13,7 @@
 
     public AudioFasterAction() {
         super(trc("audio", "Faster"), "audio-faster", trc("audio", "Faster Forward"),
-        Shortcut.registerShortcut("audio:faster", tr("Audio: {0}", trc("audio", "Faster")), KeyEvent.VK_F9, Shortcut.GROUP_DIRECT), true);
+        Shortcut.registerShortcut("audio:faster", tr("Audio: {0}", trc("audio", "Faster")), KeyEvent.VK_F9, Shortcut.DIRECT), true);
         this.putValue("help", ht("/Action/AudioFaster"));
     }
 }
Index: src/org/openstreetmap/josm/actions/audio/AudioBackAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/audio/AudioBackAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/audio/AudioBackAction.java	(working copy)
@@ -18,7 +18,7 @@
 
     public AudioBackAction() {
         super(trc("audio", "Back"), "audio-back", trc("audio", "Jump back."),
-        Shortcut.registerShortcut("audio:back", tr("Audio: {0}", trc("audio", "Back")), KeyEvent.VK_F6, Shortcut.GROUP_DIRECT), true);
+        Shortcut.registerShortcut("audio:back", tr("Audio: {0}", trc("audio", "Back")), KeyEvent.VK_F6, Shortcut.DIRECT), true);
         this.putValue("help", ht("/Action/AudioBack"));
     }
 
Index: src/org/openstreetmap/josm/actions/audio/AudioPlayPauseAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/audio/AudioPlayPauseAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/audio/AudioPlayPauseAction.java	(working copy)
@@ -16,7 +16,7 @@
 
     public AudioPlayPauseAction() {
         super(trc("audio", "Play/Pause"), "audio-playpause", tr("Play/pause audio."),
-        Shortcut.registerShortcut("audio:pause", tr("Audio: {0}", trc("audio", "Play/Pause")), KeyEvent.VK_PERIOD, Shortcut.GROUP_DIRECT), true);
+        Shortcut.registerShortcut("audio:pause", tr("Audio: {0}", trc("audio", "Play/Pause")), KeyEvent.VK_PERIOD, Shortcut.DIRECT), true);
     }
 
     public void actionPerformed(ActionEvent e) {
Index: src/org/openstreetmap/josm/actions/audio/AudioSlowerAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/audio/AudioSlowerAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/audio/AudioSlowerAction.java	(working copy)
@@ -13,7 +13,7 @@
 
     public AudioSlowerAction() {
         super(trc("audio", "Slower"), "audio-slower", trc("audio", "Slower Forward"),
-        Shortcut.registerShortcut("audio:slower", tr("Audio: {0}", trc("audio", "Slower")), KeyEvent.VK_F4, Shortcut.GROUP_DIRECT), true);
+        Shortcut.registerShortcut("audio:slower", tr("Audio: {0}", trc("audio", "Slower")), KeyEvent.VK_F4, Shortcut.DIRECT), true);
         this.putValue("help", ht("/Action/AudioSlower"));
     }
 }
Index: src/org/openstreetmap/josm/actions/audio/AudioPrevAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/audio/AudioPrevAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/audio/AudioPrevAction.java	(working copy)
@@ -15,7 +15,7 @@
 
     public AudioPrevAction() {
         super(trc("audio", "Previous Marker"), "audio-prev", trc("audio", "Play previous marker."),
-        Shortcut.registerShortcut("audio:prev", tr("Audio: {0}", trc("audio", "Previous Marker")), KeyEvent.VK_F5, Shortcut.GROUP_DIRECT), true);
+        Shortcut.registerShortcut("audio:prev", tr("Audio: {0}", trc("audio", "Previous Marker")), KeyEvent.VK_F5, Shortcut.DIRECT), true);
     }
 
     public void actionPerformed(ActionEvent e) {
Index: src/org/openstreetmap/josm/actions/audio/AudioNextAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/audio/AudioNextAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/audio/AudioNextAction.java	(working copy)
@@ -15,7 +15,7 @@
 
     public AudioNextAction() {
         super(trc("audio", "Next Marker"), "audio-next", trc("audio", "Play next marker."),
-        Shortcut.registerShortcut("audio:next", tr("Audio: {0}", trc("audio", "Next Marker")), KeyEvent.VK_F8, Shortcut.GROUP_DIRECT), true);
+        Shortcut.registerShortcut("audio:next", tr("Audio: {0}", trc("audio", "Next Marker")), KeyEvent.VK_F8, Shortcut.DIRECT), true);
     }
 
     public void actionPerformed(ActionEvent e) {
Index: src/org/openstreetmap/josm/actions/OrthogonalizeAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(working copy)
@@ -50,7 +50,7 @@
                 tr("Move nodes so all angles are 90 or 180 degrees"),
                 Shortcut.registerShortcut("tools:orthogonalize", tr("Tool: {0}", tr("Orthogonalize Shape")),
                         KeyEvent.VK_Q,
-                        Shortcut.GROUP_EDIT), true);
+                        Shortcut.DIRECT), true);
         putValue("help", ht("/Action/OrthogonalizeShape"));
     }
 
@@ -82,7 +82,7 @@
                     tr("Undo orthogonalization for certain nodes"),
                     Shortcut.registerShortcut("tools:orthogonalizeUndo", tr("Tool: {0}", tr("Orthogonalize Shape / Undo")),
                             KeyEvent.VK_Q,
-                            Shortcut.GROUP_EDIT+Shortcut.GROUPS_ALT1),
+                            Shortcut.SHIFT),
                     true, "action/orthogonalize/undo", true);
         }
         public void actionPerformed(ActionEvent e) {
Index: src/org/openstreetmap/josm/actions/JoinNodeWayAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/JoinNodeWayAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/JoinNodeWayAction.java	(working copy)
@@ -28,7 +28,7 @@
 public class JoinNodeWayAction extends JosmAction {
     public JoinNodeWayAction() {
         super(tr("Join Node to Way"), "joinnodeway", tr("Include a node into the nearest way segments"),
-                Shortcut.registerShortcut("tools:joinnodeway", tr("Tool: {0}", tr("Join Node to Way")), KeyEvent.VK_J, Shortcut.GROUP_EDIT), true);
+                Shortcut.registerShortcut("tools:joinnodeway", tr("Tool: {0}", tr("Join Node to Way")), KeyEvent.VK_J, Shortcut.DIRECT), true);
         putValue("help", ht("/Action/JoinNodeWay"));
     }
 
Index: src/org/openstreetmap/josm/actions/ValidateAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/ValidateAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/ValidateAction.java	(working copy)
@@ -46,7 +46,7 @@
     public ValidateAction() {
         super(tr("Validation"), "dialogs/validator", tr("Performs the data validation"),
             Shortcut.registerShortcut("tools:validate", tr("Tool: {0}", tr("Validation")),
-            KeyEvent.VK_V, Shortcut.GROUP_EDIT+Shortcut.GROUPS_ALT1), true);
+            KeyEvent.VK_V, Shortcut.SHIFT), true);
     }
 
     public void actionPerformed(ActionEvent ev) {
Index: src/org/openstreetmap/josm/actions/GpxExportAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/GpxExportAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/GpxExportAction.java	(working copy)
@@ -28,7 +28,7 @@
 
     public GpxExportAction() {
         super(tr("Export to GPX..."), "exportgpx", tr("Export the data to GPX file."),
-                Shortcut.registerShortcut("file:exportgpx", tr("Export to GPX..."), KeyEvent.VK_E, Shortcut.GROUP_MENU));
+                Shortcut.registerShortcut("file:exportgpx", tr("Export to GPX..."), KeyEvent.VK_E, Shortcut.CTRL));
         putValue("help", ht("/Action/GpxExport"));
     }
 
Index: src/org/openstreetmap/josm/actions/MergeSelectionAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/MergeSelectionAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/MergeSelectionAction.java	(working copy)
@@ -21,7 +21,7 @@
     public MergeSelectionAction() {
         super(tr("Merge selection"), "dialogs/mergedown", tr("Merge the currently selected objects into another layer"),
             Shortcut.registerShortcut("system:mergeselection", tr("Edit: {0}", tr("Merge selection")),
-            KeyEvent.VK_M, Shortcut.GROUP_MENU+Shortcut.GROUPS_ALT1),
+            KeyEvent.VK_M, Shortcut.CTRL_SHIFT),
             true /* register */
         );
         putValue("help", ht("/Action/MergeSelection"));
Index: src/org/openstreetmap/josm/actions/JoinAreasAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/JoinAreasAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/JoinAreasAction.java	(working copy)
@@ -307,7 +307,7 @@
     public JoinAreasAction() {
         super(tr("Join overlapping Areas"), "joinareas", tr("Joins areas that overlap each other"),
         Shortcut.registerShortcut("tools:joinareas", tr("Tool: {0}", tr("Join overlapping Areas")),
-            KeyEvent.VK_J, Shortcut.GROUP_EDIT+Shortcut.GROUPS_ALT1), true);
+            KeyEvent.VK_J, Shortcut.SHIFT), true);
     }
 
     /**
Index: src/org/openstreetmap/josm/actions/MergeNodesAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/MergeNodesAction.java	(working copy)
@@ -52,7 +52,7 @@
 
     public MergeNodesAction() {
         super(tr("Merge Nodes"), "mergenodes", tr("Merge nodes into the oldest one."),
-                Shortcut.registerShortcut("tools:mergenodes", tr("Tool: {0}", tr("Merge Nodes")), KeyEvent.VK_M, Shortcut.GROUP_EDIT), true);
+                Shortcut.registerShortcut("tools:mergenodes", tr("Tool: {0}", tr("Merge Nodes")), KeyEvent.VK_M, Shortcut.DIRECT), true);
         putValue("help", ht("/Action/MergeNodes"));
     }
 
Index: src/org/openstreetmap/josm/actions/ToggleGPXLinesAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/ToggleGPXLinesAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/ToggleGPXLinesAction.java	(working copy)
@@ -14,7 +14,7 @@
 
     public ToggleGPXLinesAction() {
         super(tr("Toggle GPX Lines"), "gps-lines", tr("Toggles the global setting ''{0}''.", tr("Draw lines between raw gps points.")),
-        Shortcut.registerShortcut("view:gpxlines", tr("View: {0}", tr("Toggle GPX Lines")), KeyEvent.VK_X, Shortcut.GROUP_DIRECT+Shortcut.GROUPS_ALT1), true);
+        Shortcut.registerShortcut("view:gpxlines", tr("View: {0}", tr("Toggle GPX Lines")), KeyEvent.VK_X, Shortcut.SHIFT), true);
         putValue("help", ht("/Action/ToggleGPXLines"));
     }
 
Index: src/org/openstreetmap/josm/actions/SaveAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/SaveAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/SaveAction.java	(working copy)
@@ -26,7 +26,7 @@
      */
     public SaveAction() {
         super(tr("Save"), "save", tr("Save the current data."),
-                Shortcut.registerShortcut("system:save", tr("File: {0}", tr("Save")), KeyEvent.VK_S, Shortcut.GROUP_MENU));
+                Shortcut.registerShortcut("system:save", tr("File: {0}", tr("Save")), KeyEvent.VK_S, Shortcut.CTRL));
         putValue("help", ht("/Action/Save"));
     }
 
Index: src/org/openstreetmap/josm/actions/AlignInCircleAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/AlignInCircleAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/AlignInCircleAction.java	(working copy)
@@ -36,7 +36,7 @@
     public AlignInCircleAction() {
         super(tr("Align Nodes in Circle"), "aligncircle", tr("Move the selected nodes into a circle."),
                 Shortcut.registerShortcut("tools:aligncircle", tr("Tool: {0}", tr("Align Nodes in Circle")),
-                        KeyEvent.VK_O, Shortcut.GROUP_EDIT), true);
+                        KeyEvent.VK_O, Shortcut.DIRECT), true);
         putValue("help", ht("/Action/AlignInCircle"));
     }
 
Index: src/org/openstreetmap/josm/actions/CopyCoordinatesAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/CopyCoordinatesAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/CopyCoordinatesAction.java	(working copy)
@@ -17,7 +17,7 @@
         super(tr("Copy Coordinates"), null,
                 tr("Copy coordinates of selected nodes to clipboard."),
                 Shortcut.registerShortcut("copy:coordinates", tr("Edit: {0}", tr("Copy Coordinates")),
-                KeyEvent.VK_C, Shortcut.GROUP_MENU+Shortcut.GROUPS_ALT1),
+                KeyEvent.VK_C, Shortcut.CTRL_SHIFT),
                 false);
         putValue("toolbar", "copy/coordinates");
     }
Index: src/org/openstreetmap/josm/actions/ExitAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/ExitAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/ExitAction.java	(working copy)
@@ -21,7 +21,7 @@
      */
     public ExitAction() {
         super(tr("Exit"), "exit", tr("Exit the application."),
-                Shortcut.registerShortcut("system:menuexit", tr("Exit"), KeyEvent.VK_Q, Shortcut.GROUP_MENU), true);
+                Shortcut.registerShortcut("system:menuexit", tr("Exit"), KeyEvent.VK_Q, Shortcut.CTRL), true);
         putValue("help", ht("/Action/Exit"));
     }
 
Index: src/org/openstreetmap/josm/actions/MirrorAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/MirrorAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/MirrorAction.java	(working copy)
@@ -33,7 +33,7 @@
     public MirrorAction() {
         super(tr("Mirror"), "mirror", tr("Mirror selected nodes and ways."),
                 Shortcut.registerShortcut("tools:mirror", tr("Tool: {0}", tr("Mirror")),
-                        KeyEvent.VK_M, Shortcut.GROUP_EDIT+Shortcut.GROUPS_ALT1), true);
+                        KeyEvent.VK_M, Shortcut.SHIFT), true);
         putValue("help", ht("/Action/Mirror"));
     }
 
Index: src/org/openstreetmap/josm/actions/ZoomOutAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/ZoomOutAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/ZoomOutAction.java	(working copy)
@@ -16,12 +16,12 @@
 
     public ZoomOutAction() {
         super(tr("Zoom Out"), "dialogs/zoomout", tr("Zoom Out"),
-                Shortcut.registerShortcut("view:zoomout", tr("View: {0}", tr("Zoom Out")), KeyEvent.VK_MINUS, Shortcut.GROUP_DIRECT), true);
+                Shortcut.registerShortcut("view:zoomout", tr("View: {0}", tr("Zoom Out")), KeyEvent.VK_MINUS, Shortcut.DIRECT), true);
         putValue("help", ht("/Action/ZoomOut"));
         // make numpad - behave like -
         Main.registerActionShortcut(this,
             Shortcut.registerShortcut("view:zoomoutkeypad", tr("View: {0}", tr("Zoom Out (Keypad)")),
-                KeyEvent.VK_SUBTRACT, Shortcut.GROUP_DIRECT));
+                KeyEvent.VK_SUBTRACT, Shortcut.DIRECT));
     }
 
     public void actionPerformed(ActionEvent e) {
Index: src/org/openstreetmap/josm/actions/SaveAsAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/SaveAsAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/SaveAsAction.java	(working copy)
@@ -24,7 +24,7 @@
     public SaveAsAction() {
         super(tr("Save As..."), "save_as", tr("Save the current data to a new file."),
             Shortcut.registerShortcut("system:saveas", tr("File: {0}", tr("Save As...")),
-            KeyEvent.VK_S, Shortcut.GROUP_MENU+Shortcut.GROUPS_ALT1));
+            KeyEvent.VK_S, Shortcut.CTRL_SHIFT));
         putValue("help", ht("/Action/SaveAs"));
     }
 
Index: src/org/openstreetmap/josm/actions/PurgeAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/PurgeAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/PurgeAction.java	(working copy)
@@ -60,7 +60,7 @@
         /* translator note: other expressions for "purge" might be "forget", "clean", "obliterate", "prune" */
         super(tr("Purge..."), "purge",  tr("Forget objects but do not delete them on server when uploading."),
                 Shortcut.registerShortcut("system:purge", tr("Edit: {0}", tr("Purge")),
-                KeyEvent.VK_P, Shortcut.GROUP_MENU+Shortcut.GROUPS_ALT1),
+                KeyEvent.VK_P, Shortcut.CTRL_SHIFT),
                 true);
         putValue("help", HelpUtil.ht("/Action/Purge"));
     }
Index: src/org/openstreetmap/josm/actions/CreateMultipolygonAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/CreateMultipolygonAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/CreateMultipolygonAction.java	(working copy)
@@ -48,7 +48,7 @@
     public CreateMultipolygonAction() {
         super(tr("Create multipolygon"), "multipoly_create", tr("Create multipolygon."),
             Shortcut.registerShortcut("tools:multipoly", tr("Tool: {0}", tr("Create multipolygon")),
-            KeyEvent.VK_A, Shortcut.GROUP_MENU+Shortcut.GROUPS_ALT2), true);
+            KeyEvent.VK_A, Shortcut.ALT_CTRL), true);
     }
     /**
      * The action button has been clicked
Index: src/org/openstreetmap/josm/actions/AlignInLineAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/AlignInLineAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/AlignInLineAction.java	(working copy)
@@ -32,7 +32,7 @@
 
     public AlignInLineAction() {
         super(tr("Align Nodes in Line"), "alignline", tr("Move the selected nodes in to a line."),
-                Shortcut.registerShortcut("tools:alignline", tr("Tool: {0}", tr("Align Nodes in Line")), KeyEvent.VK_L, Shortcut.GROUP_EDIT), true);
+                Shortcut.registerShortcut("tools:alignline", tr("Tool: {0}", tr("Align Nodes in Line")), KeyEvent.VK_L, Shortcut.DIRECT), true);
         putValue("help", ht("/Action/AlignInLine"));
     }
 
Index: src/org/openstreetmap/josm/actions/DownloadPrimitiveAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/DownloadPrimitiveAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/DownloadPrimitiveAction.java	(working copy)
@@ -58,7 +58,7 @@
 
     public DownloadPrimitiveAction() {
         super(tr("Download object..."), "downloadprimitive", tr("Download OSM object by ID."),
-                Shortcut.registerShortcut("system:download_primitive", tr("File: {0}", tr("Download object...")), KeyEvent.VK_O, Shortcut.GROUP_MENU + Shortcut.GROUPS_ALT1), true);
+                Shortcut.registerShortcut("system:download_primitive", tr("File: {0}", tr("Download object...")), KeyEvent.VK_O, Shortcut.CTRL_SHIFT), true);
         putValue("help", ht("/Action/DownloadObject"));
     }
 
Index: src/org/openstreetmap/josm/actions/ViewportFollowToggleAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/ViewportFollowToggleAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/ViewportFollowToggleAction.java	(working copy)
@@ -23,7 +23,7 @@
                 "viewport-follow",
                 tr("Enable/disable automatic moving of the map view to last placed node"),
                 Shortcut.registerShortcut("menu:view:viewportfollow", tr("Toggle Viewport Following"),
-                KeyEvent.VK_F, Shortcut.GROUP_MENU+Shortcut.GROUPS_ALT1),
+                KeyEvent.VK_F, Shortcut.CTRL_SHIFT),
                 true /* register shortcut */
         );
         putValue("help", ht("/Action/ViewportFollowing"));
Index: src/org/openstreetmap/josm/actions/PasteAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/PasteAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/PasteAction.java	(working copy)
@@ -31,7 +31,7 @@
 
     public PasteAction() {
         super(tr("Paste"), "paste", tr("Paste contents of paste buffer."),
-                Shortcut.registerShortcut("system:paste", tr("Edit: {0}", tr("Paste")), KeyEvent.VK_V, Shortcut.GROUP_MENU), true);
+                Shortcut.registerShortcut("system:paste", tr("Edit: {0}", tr("Paste")), KeyEvent.VK_V, Shortcut.CTRL), true);
         putValue("help", ht("/Action/Paste"));
         Main.pasteBuffer.addPasteBufferChangedListener(this);
     }
Index: src/org/openstreetmap/josm/actions/SimplifyWayAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/SimplifyWayAction.java	(revision 4979)
+++ src/org/openstreetmap/josm/actions/SimplifyWayAction.java	(working copy)
@@ -34,7 +34,7 @@
 public class SimplifyWayAction extends JosmAction {
     public SimplifyWayAction() {
         super(tr("Simplify Way"), "simplify", tr("Delete unnecessary nodes from a way."), Shortcut.registerShortcut("tools:simplify", tr("Tool: {0}", tr("Simplify Way")),
-                KeyEvent.VK_Y, Shortcut.GROUP_EDIT+Shortcut.GROUPS_ALT1), true);
+                KeyEvent.VK_Y, Shortcut.SHIFT), true);
         putValue("help", ht("/Action/SimplifyWay"));
     }
 
Index: src/org/openstreetmap/josm/Main.java
===================================================================
--- src/org/openstreetmap/josm/Main.java	(revision 4979)
+++ src/org/openstreetmap/josm/Main.java	(working copy)
@@ -271,7 +271,7 @@
         contentPanePrivate.add(toolbar.control, BorderLayout.NORTH);
 
         registerActionShortcut(menu.help, Shortcut.registerShortcut("system:help", tr("Help"),
-                KeyEvent.VK_F1, Shortcut.GROUP_DIRECT));
+                KeyEvent.VK_F1, Shortcut.DIRECT));
 
         if (initListener != null) {
             initListener.updateStatus(tr("Initializing presets"));
