Index: trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 4923)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 4924)
@@ -3,4 +3,5 @@
 
 import javax.swing.JCheckBoxMenuItem;
+import javax.swing.JMenuItem;
 import static org.openstreetmap.josm.tools.I18n.tr;
 import static org.openstreetmap.josm.tools.I18n.trn;
@@ -13,4 +14,5 @@
 import java.awt.Cursor;
 import java.awt.Graphics2D;
+import java.awt.MenuItem;
 import java.awt.Point;
 import java.awt.Stroke;
@@ -115,8 +117,19 @@
         snappingKeyCode = Shortcut.registerShortcut("mapmode:drawanglesnapping", tr("Mode: Draw Angle snapping"), KeyEvent.VK_TAB, Shortcut.GROUP_EDIT)
                 .getKeyStroke().getKeyCode();
-        snapCheckboxMenuItem = MainMenu.addWithCheckbox(Main.main.menu.editMenu, new SnapChangeAction(),  MainMenu.WINDOW_MENU_GROUP.VOLATILE);
+        addMenuItem();
         snapHelper.setMenuCheckBox(snapCheckboxMenuItem);
         cursorJoinNode = ImageProvider.getCursor("crosshair", "joinnode");
         cursorJoinWay = ImageProvider.getCursor("crosshair", "joinway");
+    }
+
+    private void addMenuItem() {
+        int n=Main.main.menu.editMenu.getItemCount();
+        for (int i=n-1;i>0;i--) {
+            JMenuItem item = Main.main.menu.editMenu.getItem(i);
+            if (item!=null && item.getAction() !=null && item.getAction() instanceof SnapChangeAction) {
+                Main.main.menu.editMenu.remove(i); 
+            }
+        }
+        snapCheckboxMenuItem = MainMenu.addWithCheckbox(Main.main.menu.editMenu, new SnapChangeAction(),  MainMenu.WINDOW_MENU_GROUP.VOLATILE);
     }
 
