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 32916)
+++ applications/editors/josm/plugins/splinex/src/org/openstreetmap/josm/plugins/Splinex/DrawSplineAction.java	(revision 32917)
@@ -29,4 +29,5 @@
 import org.openstreetmap.josm.data.osm.visitor.paint.MapPaintSettings;
 import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.MapView;
@@ -105,5 +106,5 @@
     @Override
     protected void readPreferences() {
-        rubberLineColor = Main.pref.getColor(marktr("helper line"), null);
+        rubberLineColor = new ColorProperty(marktr("helper line"), (Color) null).get();
         if (rubberLineColor == null)
             rubberLineColor = PaintColors.SELECTED.get();
@@ -215,5 +216,5 @@
         boolean existing = false;
         if (!ctrl) {
-            n = Main.map.mapView.getNearestNode(e.getPoint(), OsmPrimitive.isUsablePredicate);
+            n = Main.map.mapView.getNearestNode(e.getPoint(), OsmPrimitive::isUsable);
             existing = true;
         }
@@ -278,5 +279,5 @@
         } else {
             if (dragControl) {
-                Main.main.undoRedo.add(spl.new EditSplineCommand(ph.sn));
+                Main.main.undoRedo.add(new Spline.EditSplineCommand(ph.sn));
                 dragControl = false;
             }
@@ -312,5 +313,5 @@
                 Node n = null;
                 if (!ctrl)
-                    n = Main.map.mapView.getNearestNode(e.getPoint(), OsmPrimitive.isUsablePredicate);
+                    n = Main.map.mapView.getNearestNode(e.getPoint(), OsmPrimitive::isUsable);
                 if (n == null) {
                     redraw = removeHighlighting();
@@ -396,5 +397,5 @@
     }
 
-    public class BackSpaceAction extends AbstractAction {
+    public static class BackSpaceAction extends AbstractAction {
         @Override
         public void actionPerformed(ActionEvent e) {
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 32916)
+++ applications/editors/josm/plugins/splinex/src/org/openstreetmap/josm/plugins/Splinex/Spline.java	(revision 32917)
@@ -18,4 +18,5 @@
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Objects;
 
 import javax.swing.Icon;
@@ -187,4 +188,9 @@
             PointHandle o = (PointHandle) other;
             return this.sn == o.sn && this.point == o.point;
+        }
+
+        @Override
+        public int hashCode() {
+            return Objects.hash(sn, point);
         }
     }
@@ -406,5 +412,5 @@
     }
 
-    public class EditSplineCommand extends Command {
+    public static class EditSplineCommand extends Command {
         EastNorth cprev;
         EastNorth cnext;
