Index: /applications/editors/josm/plugins/CustomizePublicTransportStop/build.xml
===================================================================
--- /applications/editors/josm/plugins/CustomizePublicTransportStop/build.xml	(revision 35759)
+++ /applications/editors/josm/plugins/CustomizePublicTransportStop/build.xml	(revision 35760)
@@ -3,7 +3,7 @@
 
     <!-- enter the SVN commit message -->
-    <property name="commit.message" value="CustomizePublicTransportStop: recompile for compatibility with JOSM r17867"/>
+    <property name="commit.message" value="CustomizePublicTransportStop: recompile for compatibility with JOSM r17896"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="17867"/>
+    <property name="plugin.main.version" value="17896"/>
 
     <property name="plugin.author" value="Rodion Scherbakov"/>
Index: /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/CreateNewStopPointOperation.java
===================================================================
--- /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/CreateNewStopPointOperation.java	(revision 35759)
+++ /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/CreateNewStopPointOperation.java	(revision 35760)
@@ -17,4 +17,5 @@
 import org.openstreetmap.josm.data.osm.BBox;
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.IWaySegment;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
@@ -184,6 +185,6 @@
      *         their associated way segments to point p.
      */
-    private Map<Double, List<WaySegment>> getNearestWaySegmentsImpl(Point p) {
-        Map<Double, List<WaySegment>> nearestMap = new TreeMap<>();
+    private Map<Double, List<IWaySegment<Node, Way>>> getNearestWaySegmentsImpl(Point p) {
+        Map<Double, List<IWaySegment<Node, Way>>> nearestMap = new TreeMap<>();
         DataSet ds = getCurrentDataSet();
 
@@ -222,5 +223,5 @@
 
                     if (perDistSq < snapDistanceSq && a < c + snapDistanceSq && b < c + snapDistanceSq) {
-                        List<WaySegment> wslist;
+                        List<IWaySegment<Node, Way>> wslist;
                         if (nearestMap.containsKey(perDistSq)) {
                             wslist = nearestMap.get(perDistSq);
@@ -229,5 +230,5 @@
                             nearestMap.put(perDistSq, wslist);
                         }
-                        wslist.add(new WaySegment(w, i));
+                        wslist.add(new IWaySegment<>(w, i));
                     }
 
@@ -250,8 +251,8 @@
         MapView mapView = MainApplication.getMap().mapView;
         Point p = mapView.getPoint(platformCoord);
-        Map<Double, List<WaySegment>> dist_waySegments = getNearestWaySegmentsImpl(p);
-        for (Map.Entry<Double, List<WaySegment>> entry : dist_waySegments.entrySet()) {
-            for (WaySegment waySegment : entry.getValue()) {
-                if (testWay(waySegment.way, stopArea)) {
+        Map<Double, List<IWaySegment<Node, Way>>> dist_waySegments = getNearestWaySegmentsImpl(p);
+        for (Map.Entry<Double, List<IWaySegment<Node, Way>>> entry : dist_waySegments.entrySet()) {
+            for (IWaySegment<Node, Way> waySegment : entry.getValue()) {
+                if (testWay(waySegment.getWay(), stopArea)) {
                     Node n = waySegment.getFirstNode();
                     Node lastN = waySegment.getSecondNode();
@@ -281,11 +282,11 @@
      * @return Stop position node
      */
-    protected Node createNodeOnWay(Node newStopNode, WaySegment waySegment) {
+    protected Node createNodeOnWay(Node newStopNode, IWaySegment<Node, Way> waySegment) {
         UndoRedoHandler.getInstance().add(new AddCommand(MainApplication.getLayerManager().getEditDataSet(), newStopNode));
-        List<Node> wayNodes = waySegment.way.getNodes();
-        wayNodes.add(waySegment.lowerIndex + 1, newStopNode);
-        Way newWay = new Way(waySegment.way);
+        List<Node> wayNodes = waySegment.getWay().getNodes();
+        wayNodes.add(waySegment.getUpperIndex(), newStopNode);
+        Way newWay = new Way(waySegment.getWay());
         newWay.setNodes(wayNodes);
-        UndoRedoHandler.getInstance().add(new ChangeCommand(waySegment.way, newWay));
+        UndoRedoHandler.getInstance().add(new ChangeCommand(waySegment.getWay(), newWay));
         return newStopNode;
     }
Index: /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/NearestWaySegment.java
===================================================================
--- /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/NearestWaySegment.java	(revision 35759)
+++ /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/NearestWaySegment.java	(revision 35760)
@@ -2,5 +2,7 @@
 package org.openstreetmap.josm.plugins.customizepublictransportstop;
 
+import org.openstreetmap.josm.data.osm.IWaySegment;
 import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.WaySegment;
 
@@ -18,5 +20,5 @@
      * Way segment
      */
-    public WaySegment waySegment;
+    public IWaySegment<Node, Way> waySegment;
     /**
      * Node
@@ -31,5 +33,5 @@
      * @param newNode Node
      */
-    public NearestWaySegment(Double distanceSq, WaySegment waySegment, Node newNode) {
+    public NearestWaySegment(Double distanceSq, IWaySegment<Node, Way> waySegment, Node newNode) {
         this.distanceSq = distanceSq;
         this.waySegment = waySegment;
