Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java	(revision 18273)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java	(revision 18274)
@@ -512,4 +512,6 @@
                 UndoRedoHandler.getInstance().add(
                         new MoveCommand(candidateNode, cursorEN.east() - nodeEN.east(), cursorEN.north() - nodeEN.north()));
+
+                SelectAction.checkCommandForLargeDistance(UndoRedoHandler.getInstance().getLastCommand());
             }
         }
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 18273)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 18274)
@@ -838,4 +838,5 @@
             showConfirmMoveDialog(ed);
         }
+
         final Command lastCommand = UndoRedoHandler.getInstance().getLastCommand();
         if (lastCommand == null) {
@@ -843,4 +844,26 @@
             return;
         }
+
+        SelectAction.checkCommandForLargeDistance(lastCommand);
+
+        final int moveCount = lastCommand.getParticipatingPrimitives().size();
+        final int max = Config.getPref().getInt("warn.move.maxelements", 20);
+        if (moveCount > max) {
+            final ConfirmMoveDialog ed = new ConfirmMoveDialog();
+            ed.setContent(
+                    /* for correct i18n of plural forms - see #9110 */
+                    trn("You moved more than {0} element. " + "Moving a large number of elements is often an error.\n" + "Really move them?",
+                        "You moved more than {0} elements. " + "Moving a large number of elements is often an error.\n" + "Really move them?",
+                        max, max));
+            ed.toggleEnable("movedManyElements");
+            showConfirmMoveDialog(ed);
+        } else {
+            // if small number of elements were moved,
+            updateKeyModifiers(e);
+            if (ctrl) mergePrims(e.getPoint());
+        }
+    }
+
+    static void checkCommandForLargeDistance(Command lastCommand) {
         final int moveCount = lastCommand.getParticipatingPrimitives().size();
         if (lastCommand instanceof MoveCommand) {
@@ -858,22 +881,7 @@
             }
         }
-        int max = Config.getPref().getInt("warn.move.maxelements", 20);
-        if (moveCount > max) {
-            final ConfirmMoveDialog ed = new ConfirmMoveDialog();
-            ed.setContent(
-                    /* for correct i18n of plural forms - see #9110 */
-                    trn("You moved more than {0} element. " + "Moving a large number of elements is often an error.\n" + "Really move them?",
-                        "You moved more than {0} elements. " + "Moving a large number of elements is often an error.\n" + "Really move them?",
-                        max, max));
-            ed.toggleEnable("movedManyElements");
-            showConfirmMoveDialog(ed);
-        } else {
-            // if small number of elements were moved,
-            updateKeyModifiers(e);
-            if (ctrl) mergePrims(e.getPoint());
-        }
-    }
-
-    private void showConfirmMoveDialog(ConfirmMoveDialog ed) {
+    }
+
+    private static void showConfirmMoveDialog(ConfirmMoveDialog ed) {
         if (ed.showDialog().getValue() != 1) {
             UndoRedoHandler.getInstance().undo();
