Index: trunk/src/org/openstreetmap/josm/data/UndoRedoHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/UndoRedoHandler.java	(revision 3142)
+++ trunk/src/org/openstreetmap/josm/data/UndoRedoHandler.java	(revision 3143)
@@ -38,4 +38,10 @@
         c.executeCommand();
         commands.add(c);
+        // Limit the number of commands in the undo list.
+        // Currently you have to undo the commands one by one. If
+        // this changes, a higher default value may be reasonable.
+        if (commands.size() > Main.pref.getInteger("undo.max", 1000)) {
+            commands.removeFirst();
+        }
         redoCommands.clear();
     }
