Index: applications/editors/josm/plugins/splinex/src/org/openstreetmap/josm/plugins/Splinex/DrawSplineAction.java
===================================================================
--- applications/editors/josm/plugins/splinex/src/org/openstreetmap/josm/plugins/Splinex/DrawSplineAction.java	(revision 34901)
+++ applications/editors/josm/plugins/splinex/src/org/openstreetmap/josm/plugins/Splinex/DrawSplineAction.java	(revision 35452)
@@ -187,6 +187,6 @@
                         + ph.sn.cnext.north()) < EPSILON);
             }
-            if (ph.point == SplinePoint.ENDPOINT && !UndoRedoHandler.getInstance().commands.isEmpty()) {
-                Command cmd = UndoRedoHandler.getInstance().commands.getLast();
+            if (ph.point == SplinePoint.ENDPOINT && UndoRedoHandler.getInstance().hasUndoCommands()) {
+                Command cmd = UndoRedoHandler.getInstance().getLastCommand();
                 if (cmd instanceof MoveCommand) {
                     mc = (MoveCommand) cmd;
@@ -198,6 +198,6 @@
                 }
             }
-            if (ph.point != SplinePoint.ENDPOINT && !UndoRedoHandler.getInstance().commands.isEmpty()) {
-                Command cmd = UndoRedoHandler.getInstance().commands.getLast();
+            if (ph.point != SplinePoint.ENDPOINT && UndoRedoHandler.getInstance().hasUndoCommands()) {
+                Command cmd = UndoRedoHandler.getInstance().getLastCommand();
                 if (!(cmd instanceof Spline.EditSplineCommand && ((Spline.EditSplineCommand) cmd).sn == ph.sn))
                     dragControl = true;
@@ -210,9 +210,11 @@
         }
         if (spl.isClosed()) return;
-        if (direction == 0)
-            if (spl.nodeCount() < 2)
+        if (direction == 0) {
+            if (spl.nodeCount() < 2) {
                 direction = 1;
-            else
+            } else {
                 return;
+            }
+        }
         Node n = null;
         boolean existing = false;
