Index: trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 3681)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 3682)
@@ -277,6 +277,5 @@
                 } else {
                     //reuse existing move command
-                    moveCommand.undoCommand();
-                    moveCommand.moveAgain(bestMovement.getX(), bestMovement.getY());
+                    moveCommand.moveAgainTo(bestMovement.getX(), bestMovement.getY());
                 }
             }
Index: trunk/src/org/openstreetmap/josm/command/MoveCommand.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/MoveCommand.java	(revision 3681)
+++ trunk/src/org/openstreetmap/josm/command/MoveCommand.java	(revision 3682)
@@ -98,4 +98,8 @@
     }
 
+    public void moveAgainTo(double x, double y) {
+        moveAgain(x - this.x, y - this.y);
+    }
+
     @Override public boolean executeCommand() {
         for (Node n : nodes) {
