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 31642)
+++ applications/editors/josm/plugins/splinex/src/org/openstreetmap/josm/plugins/Splinex/DrawSplineAction.java	(revision 31644)
@@ -277,7 +277,7 @@
             if (lockCounterpart) {
                 if (ph.point == SplinePoint.CONTROL_NEXT)
-                    ph.sn.cprev = ph.sn.cnext.sub(new EastNorth(0, 0));
+                    ph.sn.cprev = new EastNorth(0, 0).subtract(ph.sn.cnext);
                 else if (ph.point == SplinePoint.CONTROL_PREV)
-                    ph.sn.cnext = ph.sn.cprev.sub(new EastNorth(0, 0));
+                    ph.sn.cnext = new EastNorth(0, 0).subtract(ph.sn.cprev);
             }
         }
Index: applications/editors/josm/plugins/splinex/src/org/openstreetmap/josm/plugins/Splinex/Spline.java
===================================================================
--- applications/editors/josm/plugins/splinex/src/org/openstreetmap/josm/plugins/Splinex/Spline.java	(revision 31642)
+++ applications/editors/josm/plugins/splinex/src/org/openstreetmap/josm/plugins/Splinex/Spline.java	(revision 31644)
@@ -171,8 +171,8 @@
                 return;
             case CONTROL_PREV:
-                sn.cprev = sn.node.getEastNorth().sub(en);
+                sn.cprev = en.subtract(sn.node.getEastNorth());
                 return;
             case CONTROL_NEXT:
-                sn.cnext = sn.node.getEastNorth().sub(en);
+                sn.cnext = en.subtract(sn.node.getEastNorth());
                 return;
             }
