Index: /trunk/src/org/openstreetmap/josm/actions/MoveAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/MoveAction.java	(revision 12062)
+++ /trunk/src/org/openstreetmap/josm/actions/MoveAction.java	(revision 12063)
@@ -137,12 +137,15 @@
 
         ds.beginUpdate();
-        if (c instanceof MoveCommand && ds.equals(c.getAffectedDataSet())
-                && affectedNodes.equals(((MoveCommand) c).getParticipatingPrimitives())) {
-            ((MoveCommand) c).moveAgain(distx, disty);
-        } else {
-            c = new MoveCommand(selection, distx, disty);
-            Main.main.undoRedo.add(c);
+        try {
+            if (c instanceof MoveCommand && ds.equals(c.getAffectedDataSet())
+                    && affectedNodes.equals(((MoveCommand) c).getParticipatingPrimitives())) {
+                ((MoveCommand) c).moveAgain(distx, disty);
+            } else {
+                c = new MoveCommand(selection, distx, disty);
+                Main.main.undoRedo.add(c);
+            }
+        } finally {
+            ds.endUpdate();
         }
-        ds.endUpdate();
 
         for (Node n : affectedNodes) {
