Index: /trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java	(revision 14397)
@@ -71,5 +71,5 @@
         super(info.getMenuName(), /* ICON */"imagery_menu", tr("Add imagery layer {0}", info.getName()), null,
                 true, ToolbarPreferences.IMAGERY_PREFIX + info.getToolbarName(), false);
-        putValue("help", ht("/Preferences/Imagery"));
+        setHelpId(ht("/Preferences/Imagery"));
         setTooltip(info.getToolTipText().replaceAll("</?html>", ""));
         this.info = info;
Index: /trunk/src/org/openstreetmap/josm/actions/AddNodeAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AddNodeAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/AddNodeAction.java	(revision 14397)
@@ -35,5 +35,5 @@
                 Shortcut.registerShortcut("addnode", tr("Edit: {0}", tr("Add Node...")),
                         KeyEvent.VK_D, Shortcut.SHIFT), true);
-        putValue("help", ht("/Action/AddNode"));
+        setHelpId(ht("/Action/AddNode"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/AlignInCircleAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AlignInCircleAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/AlignInCircleAction.java	(revision 14397)
@@ -50,5 +50,5 @@
                 Shortcut.registerShortcut("tools:aligncircle", tr("Tool: {0}", tr("Align Nodes in Circle")),
                         KeyEvent.VK_O, Shortcut.DIRECT), true);
-        putValue("help", ht("/Action/AlignInCircle"));
+        setHelpId(ht("/Action/AlignInCircle"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java	(revision 14397)
@@ -55,5 +55,5 @@
         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.DIRECT), true);
-        putValue("help", ht("/Action/AlignInLine"));
+        setHelpId(ht("/Action/AlignInLine"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 14397)
@@ -246,30 +246,30 @@
         String label = mode.getEnglishLabel();
         String modeHelp = Character.toUpperCase(label.charAt(0)) + label.substring(1);
-        putValue("help", "Action/AutoScale/" + modeHelp);
+        setHelpId("Action/AutoScale/" + modeHelp);
         this.mode = mode;
         switch (mode) {
         case DATA:
-            putValue("help", ht("/Action/ZoomToData"));
+            setHelpId(ht("/Action/ZoomToData"));
             break;
         case LAYER:
-            putValue("help", ht("/Action/ZoomToLayer"));
+            setHelpId(ht("/Action/ZoomToLayer"));
             break;
         case SELECTION:
-            putValue("help", ht("/Action/ZoomToSelection"));
+            setHelpId(ht("/Action/ZoomToSelection"));
             break;
         case CONFLICT:
-            putValue("help", ht("/Action/ZoomToConflict"));
+            setHelpId(ht("/Action/ZoomToConflict"));
             break;
         case PROBLEM:
-            putValue("help", ht("/Action/ZoomToProblem"));
+            setHelpId(ht("/Action/ZoomToProblem"));
             break;
         case DOWNLOAD:
-            putValue("help", ht("/Action/ZoomToDownload"));
+            setHelpId(ht("/Action/ZoomToDownload"));
             break;
         case PREVIOUS:
-            putValue("help", ht("/Action/ZoomToPrevious"));
+            setHelpId(ht("/Action/ZoomToPrevious"));
             break;
         case NEXT:
-            putValue("help", ht("/Action/ZoomToNext"));
+            setHelpId(ht("/Action/ZoomToNext"));
             break;
         default:
Index: /trunk/src/org/openstreetmap/josm/actions/ChangesetManagerToggleAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ChangesetManagerToggleAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/ChangesetManagerToggleAction.java	(revision 14397)
@@ -35,5 +35,5 @@
         notifySelectedState();
         changesetCacheManagerClosedHandler = new ChangesetCacheManagerClosedHandler();
-        putValue("help", ht("/Dialog/ChangesetManager"));
+        setHelpId(ht("/Dialog/ChangesetManager"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/CloseChangesetAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/CloseChangesetAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/CloseChangesetAction.java	(revision 14397)
@@ -52,5 +52,5 @@
             true
         );
-        putValue("help", ht("/Action/CloseChangeset"));
+        setHelpId(ht("/Action/CloseChangeset"));
         setEnabled(!NetworkManager.isOffline(OnlineResource.OSM_API));
 
Index: /trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 14397)
@@ -57,5 +57,5 @@
         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.DIRECT), true);
-        putValue("help", ht("/Action/CombineWay"));
+        setHelpId(ht("/Action/CombineWay"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/CopyAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/CopyAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/CopyAction.java	(revision 14397)
@@ -34,5 +34,5 @@
                 tr("Copy selected objects to paste buffer."),
                 Shortcut.registerShortcut("system:copy", tr("Edit: {0}", tr("Copy")), KeyEvent.VK_C, Shortcut.CTRL), true);
-        putValue("help", ht("/Action/Copy"));
+        setHelpId(ht("/Action/Copy"));
         // CUA shortcut for copy (https://en.wikipedia.org/wiki/IBM_Common_User_Access#Description)
         MainApplication.registerActionShortcut(this,
Index: /trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java	(revision 14397)
@@ -63,5 +63,5 @@
             Shortcut.registerShortcut("tools:createcircle", tr("Tool: {0}", tr("Create Circle")),
             KeyEvent.VK_O, Shortcut.SHIFT), true, "createcircle", true);
-        putValue("help", ht("/Action/CreateCircle"));
+        setHelpId(ht("/Action/CreateCircle"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/DeleteAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/DeleteAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/DeleteAction.java	(revision 14397)
@@ -63,5 +63,5 @@
         super(tr("Delete"), "dialogs/delete", tr("Delete selected objects."),
                 Shortcut.registerShortcut("system:delete", tr("Edit: {0}", tr("Delete")), KeyEvent.VK_DELETE, Shortcut.DIRECT), true);
-        putValue("help", ht("/Action/Delete"));
+        setHelpId(ht("/Action/Delete"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/DeleteLayerAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/DeleteLayerAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/DeleteLayerAction.java	(revision 14397)
@@ -25,5 +25,5 @@
                 Shortcut.registerShortcut("system:deletelayer", tr("File: {0}", tr("Delete Layer")), KeyEvent.VK_F4, Shortcut.CTRL),
                 true, "delete-layer", true);
-        putValue("help", ht("/Action/DeleteLayer"));
+        setHelpId(ht("/Action/DeleteLayer"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/DialogsToggleAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/DialogsToggleAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/DialogsToggleAction.java	(revision 14397)
@@ -35,5 +35,5 @@
               false
         );
-        putValue("help", ht("/ToggleDialogs"));
+        setHelpId(ht("/ToggleDialogs"));
         setSelected(Config.getPref().getBoolean("draw.dialogspanel", true));
         notifySelectedState();
Index: /trunk/src/org/openstreetmap/josm/actions/DistributeAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/DistributeAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/DistributeAction.java	(revision 14397)
@@ -42,5 +42,5 @@
               Shortcut.registerShortcut("tools:distribute", tr("Tool: {0}", tr("Distribute Nodes")), KeyEvent.VK_B, Shortcut.SHIFT),
               true);
-        putValue("help", ht("/Action/DistributeNodes"));
+        setHelpId(ht("/Action/DistributeNodes"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/DownloadAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/DownloadAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/DownloadAction.java	(revision 14397)
@@ -28,5 +28,5 @@
               Shortcut.registerShortcut("file:download", tr("File: {0}", tr("Download data")), KeyEvent.VK_DOWN, Shortcut.CTRL_SHIFT),
               true);
-        putValue("help", ht("/Action/Download"));
+        setHelpId(ht("/Action/Download"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/DownloadPrimitiveAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/DownloadPrimitiveAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/DownloadPrimitiveAction.java	(revision 14397)
@@ -35,5 +35,5 @@
         super(tr("Download object..."), "downloadprimitive", tr("Download OSM object by ID"),
                 SHORTCUT, true);
-        putValue("help", ht("/Action/DownloadObject"));
+        setHelpId(ht("/Action/DownloadObject"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/DownloadReferrersAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/DownloadReferrersAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/DownloadReferrersAction.java	(revision 14397)
@@ -31,5 +31,5 @@
                         tr("File: {0}", tr("Download parent ways/relations...")), KeyEvent.VK_D, Shortcut.ALT_CTRL),
                 true, "downloadreferrers", true);
-        putValue("help", ht("/Action/DownloadParentWaysAndRelation"));
+        setHelpId(ht("/Action/DownloadParentWaysAndRelation"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/DuplicateAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/DuplicateAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/DuplicateAction.java	(revision 14397)
@@ -27,5 +27,5 @@
                 tr("Duplicate selection."),
                 Shortcut.registerShortcut("system:duplicate", tr("Edit: {0}", tr("Duplicate")), KeyEvent.VK_D, Shortcut.CTRL), true);
-        putValue("help", ht("/Action/Duplicate"));
+        setHelpId(ht("/Action/Duplicate"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/ExitAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ExitAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/ExitAction.java	(revision 14397)
@@ -23,5 +23,5 @@
         super(tr("Exit"), "exit", tr("Exit the application."),
                 Shortcut.registerShortcut("system:menuexit", tr("Exit"), KeyEvent.VK_Q, Shortcut.CTRL), true);
-        putValue("help", ht("/Action/Exit"));
+        setHelpId(ht("/Action/Exit"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/FullscreenToggleAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/FullscreenToggleAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/FullscreenToggleAction.java	(revision 14397)
@@ -43,5 +43,5 @@
               false /* register */
         );
-        putValue("help", ht("/Action/FullscreenView"));
+        setHelpId(ht("/Action/FullscreenView"));
         putValue("toolbar", "fullscreen");
         MainApplication.getToolbar().register(this);
Index: /trunk/src/org/openstreetmap/josm/actions/GpxExportAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/GpxExportAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/GpxExportAction.java	(revision 14397)
@@ -36,5 +36,5 @@
         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.CTRL));
-        putValue("help", ht("/Action/GpxExport"));
+        setHelpId(ht("/Action/GpxExport"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/HistoryInfoAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/HistoryInfoAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/HistoryInfoAction.java	(revision 14397)
@@ -30,5 +30,5 @@
                 Shortcut.registerShortcut("core:historyinfo",
                         tr("History"), KeyEvent.VK_H, Shortcut.CTRL), false);
-        putValue("help", ht("/Action/ObjectHistory"));
+        setHelpId(ht("/Action/ObjectHistory"));
         putValue("toolbar", "action/historyinfo");
         MainApplication.getToolbar().register(this);
Index: /trunk/src/org/openstreetmap/josm/actions/HistoryInfoWebAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/HistoryInfoWebAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/HistoryInfoWebAction.java	(revision 14397)
@@ -27,5 +27,5 @@
                         tr("History (web)"), KeyEvent.VK_H, Shortcut.CTRL_SHIFT),
                 true, "action/historyinfoweb", true);
-        putValue("help", ht("/Action/ObjectHistoryWeb"));
+        setHelpId(ht("/Action/ObjectHistoryWeb"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/InfoAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/InfoAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/InfoAction.java	(revision 14397)
@@ -29,5 +29,5 @@
                 tr("Advanced info"), KeyEvent.VK_I, Shortcut.CTRL),
             true, "action/info", true);
-        putValue("help", ht("/Action/InfoAboutElements"));
+        setHelpId(ht("/Action/InfoAboutElements"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/InfoWebAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/InfoWebAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/InfoWebAction.java	(revision 14397)
@@ -31,5 +31,5 @@
                         tr("Advanced info (web)"), KeyEvent.VK_I, Shortcut.CTRL_SHIFT),
                 true, "action/infoweb", true);
-        putValue("help", ht("/Action/InfoAboutElementsWeb"));
+        setHelpId(ht("/Action/InfoAboutElementsWeb"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/JoinNodeWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/JoinNodeWayAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/JoinNodeWayAction.java	(revision 14397)
@@ -64,5 +64,5 @@
                 Shortcut.registerShortcut("tools:joinnodeway", tr("Tool: {0}", tr("Join Node to Way")),
                         KeyEvent.VK_J, Shortcut.DIRECT), true);
-        action.putValue("help", ht("/Action/JoinNodeWay"));
+        action.setHelpId(ht("/Action/JoinNodeWay"));
         return action;
     }
@@ -78,5 +78,5 @@
                 Shortcut.registerShortcut("tools:movenodeontoway", tr("Tool: {0}", tr("Move Node onto Way")),
                         KeyEvent.VK_N, Shortcut.DIRECT), true);
-        action.putValue("help", ht("/Action/MoveNodeWay"));
+        action.setHelpId(ht("/Action/MoveNodeWay"));
         return action;
     }
Index: /trunk/src/org/openstreetmap/josm/actions/JosmAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/JosmAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/JosmAction.java	(revision 14397)
@@ -269,4 +269,8 @@
             helpId = helpId.substring(0, helpId.length()-6);
         }
+        setHelpId(helpId);
+    }
+
+    protected void setHelpId(String helpId) {
         putValue("help", helpId);
     }
Index: /trunk/src/org/openstreetmap/josm/actions/JumpToAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/JumpToAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/JumpToAction.java	(revision 14397)
@@ -51,5 +51,5 @@
                 Shortcut.registerShortcut("tools:jumpto", tr("Tool: {0}", tr("Jump to Position")),
                         KeyEvent.VK_J, Shortcut.CTRL), true, "action/jumpto", true);
-        putValue("help", ht("/Action/JumpToPosition"));
+        setHelpId(ht("/Action/JumpToPosition"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/MapRectifierWMSmenuAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/MapRectifierWMSmenuAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/MapRectifierWMSmenuAction.java	(revision 14397)
@@ -89,5 +89,5 @@
                 true
         );
-        putValue("help", ht("/Menu/Imagery"));
+        setHelpId(ht("/Menu/Imagery"));
 
         // Add default services
Index: /trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java	(revision 14397)
@@ -41,5 +41,5 @@
             tr("Merge")), KeyEvent.VK_M, Shortcut.CTRL),
             true, "action/mergelayer", true);
-        putValue("help", ht("/Action/MergeLayer"));
+        setHelpId(ht("/Action/MergeLayer"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 14397)
@@ -68,5 +68,5 @@
         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.DIRECT), true);
-        putValue("help", ht("/Action/MergeNodes"));
+        setHelpId(ht("/Action/MergeNodes"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/MergeSelectionAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/MergeSelectionAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/MergeSelectionAction.java	(revision 14397)
@@ -35,5 +35,5 @@
             true /* register */
         );
-        putValue("help", ht("/Action/MergeSelection"));
+        setHelpId(ht("/Action/MergeSelection"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/MirrorAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/MirrorAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/MirrorAction.java	(revision 14397)
@@ -40,5 +40,5 @@
                 Shortcut.registerShortcut("tools:mirror", tr("Tool: {0}", tr("Mirror")),
                         KeyEvent.VK_M, Shortcut.SHIFT), true);
-        putValue("help", ht("/Action/Mirror"));
+        setHelpId(ht("/Action/Mirror"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/MoveAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/MoveAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/MoveAction.java	(revision 14397)
@@ -87,5 +87,5 @@
                 calltosupermustbefirststatementinconstructor(dir), false);
         myDirection = dir;
-        putValue("help", ht("/Action/Move"));
+        setHelpId(ht("/Action/Move"));
         if (dir == Direction.UP) {
             putValue("toolbar", "action/move/up");
Index: /trunk/src/org/openstreetmap/josm/actions/MoveNodeAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/MoveNodeAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/MoveNodeAction.java	(revision 14397)
@@ -30,5 +30,5 @@
                 null, /* no shortcut */
                 true);
-        putValue("help", ht("/Action/MoveNode"));
+        setHelpId(ht("/Action/MoveNode"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/NewAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/NewAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/NewAction.java	(revision 14397)
@@ -24,5 +24,5 @@
         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.CTRL), true);
-        putValue("help", ht("/Action/NewLayer"));
+        setHelpId(ht("/Action/NewLayer"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java	(revision 14397)
@@ -68,5 +68,5 @@
         super(tr("Open..."), "open", tr("Open a file."),
                 Shortcut.registerShortcut("system:open", tr("File: {0}", tr("Open...")), KeyEvent.VK_O, Shortcut.CTRL));
-        putValue("help", ht("/Action/Open"));
+        setHelpId(ht("/Action/Open"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/OpenLocationAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/OpenLocationAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/OpenLocationAction.java	(revision 14397)
@@ -89,5 +89,5 @@
                 Shortcut.registerShortcut("system:open_location", tr("File: {0}", tr("Open Location...")),
                         KeyEvent.VK_L, Shortcut.CTRL), true);
-        putValue("help", ht("/Action/OpenLocation"));
+        setHelpId(ht("/Action/OpenLocation"));
         this.downloadTasks = new ArrayList<>();
         addDownloadTaskClass(DownloadOsmTask.class);
Index: /trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 14397)
@@ -65,5 +65,5 @@
                         KeyEvent.VK_Q,
                         Shortcut.DIRECT), true);
-        putValue("help", ht("/Action/OrthogonalizeShape"));
+        setHelpId(ht("/Action/OrthogonalizeShape"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/PasteAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/PasteAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/PasteAction.java	(revision 14397)
@@ -23,5 +23,5 @@
         super(tr("Paste"), "paste", tr("Paste contents of clipboard."),
                 Shortcut.registerShortcut("system:paste", tr("Edit: {0}", tr("Paste")), KeyEvent.VK_V, Shortcut.CTRL), true);
-        putValue("help", ht("/Action/Paste"));
+        setHelpId(ht("/Action/Paste"));
         // CUA shortcut for paste (https://en.wikipedia.org/wiki/IBM_Common_User_Access#Description)
         MainApplication.registerActionShortcut(this,
Index: /trunk/src/org/openstreetmap/josm/actions/PasteAtSourcePositionAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/PasteAtSourcePositionAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/PasteAtSourcePositionAction.java	(revision 14397)
@@ -25,5 +25,5 @@
                 Shortcut.registerShortcut("menu:edit:pasteAtSource", tr("Edit: {0}", tr("Paste at source position")),
                         KeyEvent.VK_V, Shortcut.ALT_CTRL), true, "pasteatsource");
-        putValue("help", ht("/Action/Paste"));
+        setHelpId(ht("/Action/Paste"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/PasteTagsAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/PasteTagsAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/PasteTagsAction.java	(revision 14397)
@@ -34,5 +34,5 @@
                 Shortcut.registerShortcut("system:pastestyle", tr("Edit: {0}", tr("Paste Tags")),
                 KeyEvent.VK_V, Shortcut.CTRL_SHIFT), true);
-        putValue("help", HELP);
+        setHelpId(HELP);
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/PreferencesAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/PreferencesAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/PreferencesAction.java	(revision 14397)
@@ -89,5 +89,5 @@
         super(tr("Preferences..."), "preference", tr("Open a preferences dialog for global settings."),
                 Shortcut.registerShortcut("system:preferences", tr("Preferences"), KeyEvent.VK_F12, Shortcut.DIRECT), true);
-        putValue("help", ht("/Action/Preferences"));
+        setHelpId(ht("/Action/Preferences"));
         this.tab = null;
         this.subTab = null;
Index: /trunk/src/org/openstreetmap/josm/actions/PurgeAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/PurgeAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/PurgeAction.java	(revision 14397)
@@ -73,5 +73,5 @@
                 Shortcut.registerShortcut("system:purge", tr("Edit: {0}", tr("Purge")), KeyEvent.VK_P, Shortcut.CTRL_SHIFT),
                 true);
-        putValue("help", HelpUtil.ht("/Action/Purge"));
+        setHelpId(HelpUtil.ht("/Action/Purge"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/RedoAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/RedoAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/RedoAction.java	(revision 14397)
@@ -28,5 +28,5 @@
                 Shortcut.registerShortcut("system:redo", tr("Edit: {0}", tr("Redo")), KeyEvent.VK_Y, Shortcut.CTRL), true);
         setEnabled(false);
-        putValue("help", ht("/Action/Redo"));
+        setHelpId(ht("/Action/Redo"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/RestartAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/RestartAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/RestartAction.java	(revision 14397)
@@ -50,5 +50,5 @@
         super(tr("Restart"), "restart", tr("Restart the application."),
                 Shortcut.registerShortcut("file:restart", tr("File: {0}", tr("Restart")), KeyEvent.VK_J, Shortcut.ALT_CTRL_SHIFT), false);
-        putValue("help", ht("/Action/Restart"));
+        setHelpId(ht("/Action/Restart"));
         putValue("toolbar", "action/restart");
         if (MainApplication.getToolbar() != null) {
Index: /trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java	(revision 14397)
@@ -107,5 +107,5 @@
         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.DIRECT), true);
-        putValue("help", ht("/Action/ReverseWays"));
+        setHelpId(ht("/Action/ReverseWays"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/SaveAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SaveAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/SaveAction.java	(revision 14397)
@@ -28,5 +28,5 @@
         super(tr("Save"), "save", tr("Save the current data."),
                 Shortcut.registerShortcut("system:save", tr("File: {0}", tr("Save")), KeyEvent.VK_S, Shortcut.CTRL));
-        putValue("help", ht("/Action/Save"));
+        setHelpId(ht("/Action/Save"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/SaveAsAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SaveAsAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/SaveAsAction.java	(revision 14397)
@@ -26,5 +26,5 @@
             Shortcut.registerShortcut("system:saveas", tr("File: {0}", tr("Save As...")),
             KeyEvent.VK_S, Shortcut.CTRL_SHIFT));
-        putValue("help", ht("/Action/SaveAs"));
+        setHelpId(ht("/Action/SaveAs"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/SelectAllAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SelectAllAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/SelectAllAction.java	(revision 14397)
@@ -22,5 +22,5 @@
         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.CTRL), true);
-        putValue("help", ht("/Action/SelectAll"));
+        setHelpId(ht("/Action/SelectAll"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/SessionLoadAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SessionLoadAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/SessionLoadAction.java	(revision 14397)
@@ -49,5 +49,5 @@
     public SessionLoadAction() {
         super(tr("Load Session"), "open", tr("Load a session from file."), null, true, "load-session", true);
-        putValue("help", ht("/Action/SessionLoad"));
+        setHelpId(ht("/Action/SessionLoad"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/SessionSaveAsAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SessionSaveAsAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/SessionSaveAsAction.java	(revision 14397)
@@ -73,5 +73,5 @@
         super(tr("Save Session As..."), "session", tr("Save the current session to a new file."),
                 null, toolbar, "save_as-session", installAdapters);
-        putValue("help", ht("/Action/SessionSaveAs"));
+        setHelpId(ht("/Action/SessionSaveAs"));
         MainApplication.addMapFrameListener(this);
     }
Index: /trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 14397)
@@ -67,5 +67,5 @@
                         tr("Show Status Report")), KeyEvent.CHAR_UNDEFINED, Shortcut.NONE), false);
 
-        putValue("help", ht("/Action/ShowStatusReport"));
+        setHelpId(ht("/Action/ShowStatusReport"));
         putValue("toolbar", "help/showstatusreport");
         MainApplication.getToolbar().register(this);
Index: /trunk/src/org/openstreetmap/josm/actions/SimplifyWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SimplifyWayAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/SimplifyWayAction.java	(revision 14397)
@@ -50,5 +50,5 @@
         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.SHIFT), true);
-        putValue("help", ht("/Action/SimplifyWay"));
+        setHelpId(ht("/Action/SimplifyWay"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 14397)
@@ -55,5 +55,5 @@
         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.DIRECT), true);
-        putValue("help", ht("/Action/SplitWay"));
+        setHelpId(ht("/Action/SplitWay"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java	(revision 14397)
@@ -64,5 +64,5 @@
         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.DIRECT), true);
-        putValue("help", ht("/Action/UnGlue"));
+        setHelpId(ht("/Action/UnGlue"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/UnJoinNodeWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UnJoinNodeWayAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/UnJoinNodeWayAction.java	(revision 14397)
@@ -37,5 +37,5 @@
                 Shortcut.registerShortcut("tools:unjoinnodeway",
                     tr("Tool: {0}", tr("Disconnect Node from Way")), KeyEvent.VK_J, Shortcut.ALT), true);
-        putValue("help", ht("/Action/UnJoinNodeWay"));
+        setHelpId(ht("/Action/UnJoinNodeWay"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/UndoAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UndoAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/UndoAction.java	(revision 14397)
@@ -28,5 +28,5 @@
                 Shortcut.registerShortcut("system:undo", tr("Edit: {0}", tr("Undo")), KeyEvent.VK_Z, Shortcut.CTRL), true);
         setEnabled(false);
-        putValue("help", ht("/Action/Undo"));
+        setHelpId(ht("/Action/Undo"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/UnselectAllAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UnselectAllAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/UnselectAllAction.java	(revision 14397)
@@ -23,5 +23,5 @@
             tr("Unselect All")), KeyEvent.VK_ESCAPE, Shortcut.DIRECT), true);
 
-        putValue("help", ht("/Action/UnselectAll"));
+        setHelpId(ht("/Action/UnselectAll"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/UpdateDataAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UpdateDataAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/UpdateDataAction.java	(revision 14397)
@@ -39,5 +39,5 @@
                         KeyEvent.VK_U, Shortcut.CTRL),
                 true);
-        putValue("help", ht("/Action/UpdateData"));
+        setHelpId(ht("/Action/UpdateData"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/UpdateModifiedAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UpdateModifiedAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/UpdateModifiedAction.java	(revision 14397)
@@ -32,5 +32,5 @@
                         Shortcut.ALT_CTRL),
                         true, "updatemodified");
-        putValue("help", ht("/Action/UpdateModified"));
+        setHelpId(ht("/Action/UpdateModified"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/UpdateSelectionAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UpdateSelectionAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/UpdateSelectionAction.java	(revision 14397)
@@ -92,5 +92,5 @@
                         Shortcut.ALT_CTRL),
                 true, "updateselection", true);
-        putValue("help", ht("/Action/UpdateSelection"));
+        setHelpId(ht("/Action/UpdateSelection"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/UploadAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UploadAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/UploadAction.java	(revision 14397)
@@ -142,5 +142,5 @@
         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.CTRL_SHIFT), true);
-        putValue("help", ht("/Action/Upload"));
+        setHelpId(ht("/Action/Upload"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/UploadSelectionAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UploadSelectionAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/UploadSelectionAction.java	(revision 14397)
@@ -52,5 +52,5 @@
                 // CHECKSTYLE.ON: LineLength
                 true);
-        putValue("help", ht("/Action/UploadSelection"));
+        setHelpId(ht("/Action/UploadSelection"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/ViewportFollowToggleAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ViewportFollowToggleAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/ViewportFollowToggleAction.java	(revision 14397)
@@ -28,5 +28,5 @@
               true /* register shortcut */
         );
-        putValue("help", ht("/Action/ViewportFollowing"));
+        setHelpId(ht("/Action/ViewportFollowing"));
         setSelected(false);
         notifySelectedState();
Index: /trunk/src/org/openstreetmap/josm/actions/ZoomInAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ZoomInAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/ZoomInAction.java	(revision 14397)
@@ -29,5 +29,5 @@
                 true
         );
-        putValue("help", ht("/Action/ZoomIn"));
+        setHelpId(ht("/Action/ZoomIn"));
         // On standard QWERTY, AZERTY and other common layouts the '+' key is obtained with Shift+EQUALS
         MainApplication.registerActionShortcut(this,
Index: /trunk/src/org/openstreetmap/josm/actions/ZoomOutAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ZoomOutAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/ZoomOutAction.java	(revision 14397)
@@ -23,5 +23,5 @@
         super(tr("Zoom Out"), "dialogs/zoomout", tr("Zoom Out"),
                 Shortcut.registerShortcut("view:zoomout", tr("View: {0}", tr("Zoom Out")), KeyEvent.VK_MINUS, Shortcut.DIRECT), true);
-        putValue("help", ht("/Action/ZoomOut"));
+        setHelpId(ht("/Action/ZoomOut"));
         // make numpad - behave like -
         MainApplication.registerActionShortcut(this,
Index: /trunk/src/org/openstreetmap/josm/actions/audio/AudioBackAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/audio/AudioBackAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/audio/AudioBackAction.java	(revision 14397)
@@ -28,5 +28,5 @@
         super(trc("audio", "Back"), "audio-back", trc("audio", "Jump back."),
         Shortcut.registerShortcut("audio:back", tr("Audio: {0}", trc("audio", "Back")), KeyEvent.VK_F6, Shortcut.DIRECT), true);
-        this.putValue("help", ht("/Action/AudioBack"));
+        setHelpId(ht("/Action/AudioBack"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/audio/AudioFasterAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/audio/AudioFasterAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/audio/AudioFasterAction.java	(revision 14397)
@@ -23,5 +23,5 @@
         super(trc("audio", "Faster"), "audio-faster", trc("audio", "Faster Forward"),
         Shortcut.registerShortcut("audio:faster", tr("Audio: {0}", trc("audio", "Faster")), KeyEvent.VK_F9, Shortcut.DIRECT), true);
-        this.putValue("help", ht("/Action/AudioFaster"));
+        setHelpId(ht("/Action/AudioFaster"));
     }
 }
Index: /trunk/src/org/openstreetmap/josm/actions/audio/AudioSlowerAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/audio/AudioSlowerAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/audio/AudioSlowerAction.java	(revision 14397)
@@ -23,5 +23,5 @@
         super(trc("audio", "Slower"), "audio-slower", trc("audio", "Slower Forward"),
         Shortcut.registerShortcut("audio:slower", tr("Audio: {0}", trc("audio", "Slower")), KeyEvent.VK_F4, Shortcut.DIRECT), false);
-        this.putValue("help", ht("/Action/AudioSlower"));
+        setHelpId(ht("/Action/AudioSlower"));
     }
 }
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 14397)
@@ -1413,5 +1413,5 @@
             super(tr("Angle snapping"), /* ICON() */ "anglesnap",
                     tr("Switch angle snapping mode while drawing"), null, false);
-            putValue("help", ht("/Action/Draw/AngleSnap"));
+            setHelpId(ht("/Action/Draw/AngleSnap"));
         }
 
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 14397)
@@ -199,5 +199,5 @@
             super(tr("Dual alignment"), /* ICON() */ "mapmode/extrude/dualalign",
                     tr("Switch dual alignment mode while extruding"), null, false);
-            putValue("help", ht("/Action/Extrude#DualAlign"));
+            setHelpId(ht("/Action/Extrude#DualAlign"));
         }
 
@@ -222,5 +222,5 @@
                 Shortcut.registerShortcut("mapmode:extrude", tr("Mode: {0}", tr("Extrude")), KeyEvent.VK_X, Shortcut.DIRECT),
                 ImageProvider.getCursor("normal", "rectangle"));
-        putValue("help", ht("/Action/Extrude"));
+        setHelpId(ht("/Action/Extrude"));
         cursorCreateNew = ImageProvider.getCursor("normal", "rectangle_plus");
         cursorTranslate = ImageProvider.getCursor("normal", "rectangle_move");
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java	(revision 14397)
@@ -155,5 +155,5 @@
                 tr("Parallel")), KeyEvent.VK_P, Shortcut.SHIFT),
             ImageProvider.getCursor("normal", "parallel"));
-        putValue("help", ht("/Action/Parallel"));
+        setHelpId(ht("/Action/Parallel"));
         mv = mapFrame.mapView;
     }
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 14397)
@@ -197,5 +197,5 @@
                 ImageProvider.getCursor("normal", "selection"));
         mv = mapFrame.mapView;
-        putValue("help", ht("/Action/Select"));
+        setHelpId(ht("/Action/Select"));
         selectionManager = new SelectionManager(this, false, mv);
     }
Index: /trunk/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java	(revision 14397)
@@ -60,3 +60,7 @@
             && ds != null && !ds.isLocked() && DownloadPolicy.BLOCKED != ds.getDownloadPolicy();
     }
+    
+    protected void setHelpId(String helpId) {
+        putValue("help", helpId);
+    }
 }
Index: /trunk/src/org/openstreetmap/josm/actions/relation/DownloadMembersAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/relation/DownloadMembersAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/relation/DownloadMembersAction.java	(revision 14397)
@@ -29,5 +29,5 @@
         putValue(NAME, tr("Download members"));
         new ImageProvider("dialogs", "downloadincomplete").getResource().attachImageIcon(this, true);
-        putValue("help", ht("/Dialog/RelationList#DownloadMembers"));
+        setHelpId(ht("/Dialog/RelationList#DownloadMembers"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/relation/ExportRelationToGpxAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/relation/ExportRelationToGpxAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/relation/ExportRelationToGpxAction.java	(revision 14397)
@@ -80,5 +80,5 @@
         super(name(mode), mode.contains(TO_FILE) ? "exportgpx" : "dialogs/layerlist", tooltip(mode),
                 null, false, null, false);
-        putValue("help", ht("/Action/ExportRelationToGpx"));
+        setHelpId(ht("/Action/ExportRelationToGpx"));
         this.mode = mode;
     }
Index: /trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 14397)
@@ -172,5 +172,5 @@
         super(tr("Search..."), "dialogs/search", tr("Search for objects"),
                 Shortcut.registerShortcut("system:find", tr("Search..."), KeyEvent.VK_F, Shortcut.CTRL), true);
-        putValue("help", ht("/Action/Search"));
+        setHelpId(ht("/Action/Search"));
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java	(revision 14397)
@@ -178,4 +178,9 @@
     }
 
+    @Override
+    public String helpTopic() {
+        return HelpUtil.ht("/Dialog/ChangesetList");
+    }
+
     protected void build() {
         JPanel pnl = new JPanel(new BorderLayout());
@@ -185,6 +190,4 @@
 
         cbInSelectionOnly.addItemListener(new FilterChangeHandler());
-
-        HelpUtil.setHelpContext(pnl, HelpUtil.ht("/Dialog/ChangesetList"));
 
         // -- select objects action
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java	(revision 14397)
@@ -241,7 +241,5 @@
         setMinimumSize(new Dimension(0, 0));
         this.preferredHeight = preferredHeight;
-        toggleAction = new ToggleDialogAction(name, "dialogs/"+iconName, tooltip, shortcut);
-        String helpId = "Dialog/"+getClass().getName().substring(getClass().getName().lastIndexOf('.')+1);
-        toggleAction.putValue("help", helpId.substring(0, helpId.length()-6));
+        toggleAction = new ToggleDialogAction(name, "dialogs/"+iconName, tooltip, shortcut, helpTopic());
 
         isShowing = Config.getPref().getBoolean(preferencePrefix+".visible", defShow);
@@ -284,6 +282,7 @@
     public final class ToggleDialogAction extends JosmAction {
 
-        private ToggleDialogAction(String name, String iconName, String tooltip, Shortcut shortcut) {
+        private ToggleDialogAction(String name, String iconName, String tooltip, Shortcut shortcut, String helpId) {
             super(name, iconName, tooltip, shortcut, false, false);
+            setHelpId(helpId);
         }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 14396)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 14397)
@@ -249,6 +249,4 @@
                         Shortcut.ALT_SHIFT), 150, true);
 
-        HelpUtil.setHelpContext(this, HelpUtil.ht("/Dialog/TagsMembership"));
-
         setupTagsMenu();
         buildTagsTable();
@@ -299,4 +297,9 @@
 
         Config.getPref().addKeyPreferenceChangeListener("display.discardable-keys", preferenceListener);
+    }
+
+    @Override
+    public String helpTopic() {
+        return HelpUtil.ht("/Dialog/TagsMembership");
     }
 
