Index: applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/MergeOverlapAction.java
===================================================================
--- applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/MergeOverlapAction.java	(revision 29644)
+++ applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/MergeOverlapAction.java	(revision 29778)
@@ -70,4 +70,5 @@
 	 *            Action Event
 	 */
+        @Override
 	public void actionPerformed(ActionEvent e) {
 
@@ -261,4 +262,5 @@
 		}
 
+                @Override
 		public String toString() {
 			return "NodePos: " + pos + ", " + opositPos + ", " + node;
Index: applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/MergeOverlapPlugin.java
===================================================================
--- applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/MergeOverlapPlugin.java	(revision 29644)
+++ applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/MergeOverlapPlugin.java	(revision 29778)
@@ -3,8 +3,6 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import javax.swing.JMenu;
-import javax.swing.JMenuItem;
-
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.plugins.Plugin;
 import org.openstreetmap.josm.plugins.PluginInformation;
@@ -17,24 +15,8 @@
     protected String name;
 
-        public MergeOverlapPlugin(PluginInformation info) {
+    public MergeOverlapPlugin(PluginInformation info) {
         super(info);
-        name = tr("Merge overlap", null);
-        JMenu toolsMenu = null;
-        for (int i = 0; i < Main.main.menu.getMenuCount() && toolsMenu == null; i++) {
-            JMenu menu = Main.main.menu.getMenu(i);
-            String name = menu.getText();
-            if (name != null && name.equals(tr("Tools", null))) {
-                toolsMenu = menu;
-            }
-        }
-
-        if (toolsMenu == null) {
-            toolsMenu = new JMenu(name);
-            toolsMenu.add(new JMenuItem(new MergeOverlapAction()));
-            Main.main.menu.add(toolsMenu, 2);
-        } else {
-            toolsMenu.addSeparator();
-            toolsMenu.add(new JMenuItem(new MergeOverlapAction()));
-        }
+        name = tr("Merge overlap");
+        MainMenu.add(Main.main.menu.moreToolsMenu, new MergeOverlapAction());
     }
 }
Index: applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/MyCombinePrimitiveResolverDialog.java
===================================================================
--- applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/MyCombinePrimitiveResolverDialog.java	(revision 29644)
+++ applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/MyCombinePrimitiveResolverDialog.java	(revision 29778)
@@ -324,5 +324,5 @@
         JPanel pnl = new JPanel();
         pnl.setLayout(new BorderLayout());
-        pnl.add(new JLabel(tr("No conflicts to resolve", null)));
+        pnl.add(new JLabel(tr("No conflicts to resolve")));
         return pnl;
     }
@@ -386,10 +386,11 @@
 
         public CancelAction() {
-            putValue(Action.SHORT_DESCRIPTION, tr("Cancel conflict resolution", null));
-            putValue(Action.NAME, tr("Cancel", null));
+            putValue(Action.SHORT_DESCRIPTION, tr("Cancel conflict resolution"));
+            putValue(Action.NAME, tr("Cancel"));
             putValue(Action.SMALL_ICON, ImageProvider.get("", "cancel"));
             setEnabled(true);
         }
 
+        @Override
         public void actionPerformed(ActionEvent arg0) {
             setCancelled(true);
@@ -401,10 +402,11 @@
 
         public ApplyAction() {
-            putValue(Action.SHORT_DESCRIPTION, tr("Apply resolved conflicts", null));
-            putValue(Action.NAME, tr("Apply", null));
+            putValue(Action.SHORT_DESCRIPTION, tr("Apply resolved conflicts"));
+            putValue(Action.NAME, tr("Apply"));
             putValue(Action.SMALL_ICON, ImageProvider.get("ok"));
             updateEnabledState();
         }
 
+        @Override
         public void actionPerformed(ActionEvent arg0) {
             setVisible(false);
@@ -417,4 +419,5 @@
         }
 
+        @Override
         public void propertyChange(PropertyChangeEvent evt) {
             if (evt.getPropertyName().equals(MyTagConflictResolverModel.NUM_CONFLICTS_PROP)) {
@@ -447,12 +450,15 @@
         }
 
+        @Override
         public void ancestorResized(HierarchyEvent e) {
             setDividerLocation((int) (dividerLocation * getHeight()));
         }
 
+        @Override
         public void ancestorMoved(HierarchyEvent e) {
             // do nothing
         }
 
+        @Override
         public void propertyChange(PropertyChangeEvent evt) {
             if (evt.getPropertyName().equals(JSplitPane.DIVIDER_LOCATION_PROPERTY)) {
@@ -800,7 +806,7 @@
             JPanel pnl = new JPanel();
             pnl.setLayout(new FlowLayout(FlowLayout.LEFT));
-            pnl.add(new JLabel(tr("Role:", null)));
+            pnl.add(new JLabel(tr("Role:")));
             pnl.add(tfRole = new AutoCompletingTextField(10));
-            tfRole.setToolTipText(tr("Enter a role for all relation memberships", null));
+            tfRole.setToolTipText(tr("Enter a role for all relation memberships"));
             pnl.add(new JButton(new ApplyRoleAction()));
             tfRole.addActionListener(new ApplyRoleAction());
@@ -819,16 +825,16 @@
             JPanel pnl = new JPanel();
             pnl.setLayout(new FlowLayout(FlowLayout.LEFT));
-            cbTagRelations = new JCheckBox(tr("Tag modified relations with ", null));
+            cbTagRelations = new JCheckBox(tr("Tag modified relations with "));
             cbTagRelations.addChangeListener(new ToggleTagRelationsAction());
             cbTagRelations.setToolTipText(
                     tr("<html>Select to enable entering a tag which will be applied<br>"
-                            + "to all modified relations.</html>", null));
+                            + "to all modified relations.</html>"));
             pnl.add(cbTagRelations);
             pnl.add(new JLabel(trc("tag", "Key:")));
             pnl.add(tfKey = new AutoCompletingTextField(10));
-            tfKey.setToolTipText(tr("<html>Enter a tag key, i.e. <strong><tt>fixme</tt></strong></html>", null));
-            pnl.add(new JLabel(tr("Value:", null)));
+            tfKey.setToolTipText(tr("<html>Enter a tag key, i.e. <strong><tt>fixme</tt></strong></html>"));
+            pnl.add(new JLabel(tr("Value:")));
             pnl.add(tfValue = new AutoCompletingTextField(10));
-            tfValue.setToolTipText(tr("<html>Enter a tag value, i.e. <strong><tt>check members</tt></strong></html>", null));
+            tfValue.setToolTipText(tr("<html>Enter a tag value, i.e. <strong><tt>check members</tt></strong></html>"));
             cbTagRelations.setSelected(false);
             tfKey.setEnabled(false);
@@ -848,5 +854,5 @@
                     + "the other ways that are members of the same relation: the combined way will "
                     + "take the place of the original way in the relation."
-                    + "</html>", null));
+                    + "</html>"));
             invalidate();
         }
@@ -859,5 +865,5 @@
                     + "the other nodes that are members of the same relation: the target node will "
                     + "take the place of the original node in the relation."
-                    + "</html>", null));
+                    + "</html>"));
             invalidate();
         }
@@ -865,9 +871,10 @@
         class ApplyRoleAction extends AbstractAction {
             public ApplyRoleAction() {
-                putValue(NAME, tr("Apply", null));
+                putValue(NAME, tr("Apply"));
                 putValue(SMALL_ICON, ImageProvider.get("ok"));
-                putValue(SHORT_DESCRIPTION, tr("Apply this role to all members", null));
-            }
-
+                putValue(SHORT_DESCRIPTION, tr("Apply this role to all members"));
+            }
+
+            @Override
             public void actionPerformed(ActionEvent e) {
                 model.applyRole(tfRole.getText());
@@ -876,4 +883,5 @@
 
         class ToggleTagRelationsAction implements ChangeListener {
+            @Override
             public void stateChanged(ChangeEvent e) {
                 ButtonModel buttonModel = ((AbstractButton) e.getSource()).getModel();
@@ -957,4 +965,5 @@
          */
         class SelectNextColumnCellAction extends AbstractAction {
+            @Override
             public void actionPerformed(ActionEvent e) {
                 run();
@@ -987,4 +996,5 @@
         class SelectPreviousColumnCellAction extends AbstractAction {
 
+            @Override
             public void actionPerformed(ActionEvent e) {
                 run();
@@ -1010,8 +1020,10 @@
         }
 
+        @Override
         public void gotoNextDecision() {
             selectNextColumnCellAction.run();
         }
 
+        @Override
         public void gotoPreviousDecision() {
             selectPreviousColumnCellAction.run();
@@ -1067,4 +1079,5 @@
                     displayedKeys,
                     new Comparator<String>() {
+                        @Override
                         public int compare(String key1, String key2) {
                             if (decisions.get(key1).isDecided() && ! decisions.get(key2).isDecided())
@@ -1270,13 +1283,14 @@
             gc.weightx = 1.0;
             gc.anchor = GridBagConstraints.LINE_START;
-            pnl.add(new JLabel(tr("<html>Please select the values to keep for the following tags.</html>", null)), gc);
+            pnl.add(new JLabel(tr("<html>Please select the values to keep for the following tags.</html>")), gc);
 
             gc.gridy = 1;
             gc.fill = GridBagConstraints.HORIZONTAL;
             gc.weighty = 0.0;
-            pnl.add(cbShowTagsWithConflictsOnly = new JCheckBox(tr("Show tags with conflicts only", null)), gc);
-            pnl.add(cbShowTagsWithMultiValuesOnly = new JCheckBox(tr("Show tags with multiple values only", null)), gc);
+            pnl.add(cbShowTagsWithConflictsOnly = new JCheckBox(tr("Show tags with conflicts only")), gc);
+            pnl.add(cbShowTagsWithMultiValuesOnly = new JCheckBox(tr("Show tags with multiple values only")), gc);
             cbShowTagsWithConflictsOnly.addChangeListener(
                     new ChangeListener() {
+                        @Override
                         public void stateChanged(ChangeEvent e) {
                             model.setShowTagsWithConflictsOnly(cbShowTagsWithConflictsOnly.isSelected());
@@ -1290,4 +1304,5 @@
             cbShowTagsWithMultiValuesOnly.addChangeListener(
                     new ChangeListener() {
+                        @Override
                         public void stateChanged(ChangeEvent e) {
                             model.setShowTagsWithMultiValuesOnly(cbShowTagsWithMultiValuesOnly.isSelected());
@@ -1373,4 +1388,5 @@
          */
         class SelectNextColumnCellAction extends AbstractAction {
+            @Override
             public void actionPerformed(ActionEvent e) {
                 run();
@@ -1403,4 +1419,5 @@
         class SelectPreviousColumnCellAction extends AbstractAction {
 
+            @Override
             public void actionPerformed(ActionEvent e) {
                 run();
@@ -1426,8 +1443,10 @@
         }
 
+        @Override
         public void gotoNextDecision() {
             selectNextColumnCellAction.run();
         }
 
+        @Override
         public void gotoPreviousDecision() {
             selectPreviousColumnCellAction.run();
