Index: applications/editors/josm/plugins/cadastre-fr/build.xml
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/build.xml	(revision 35757)
+++ applications/editors/josm/plugins/cadastre-fr/build.xml	(revision 35758)
@@ -2,7 +2,7 @@
 <project name="cadastre-fr" default="dist" basedir=".">
     <!-- enter the SVN commit message -->
-    <property name="commit.message" value="recompile for compatibility with JOSM r17867"/>
+    <property name="commit.message" value="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"/>
     
     <!-- Configure these properties (replace "..." accordingly).
Index: applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/actions/mapmode/Address.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/actions/mapmode/Address.java	(revision 35757)
+++ applications/editors/josm/plugins/cadastre-fr/src/org/openstreetmap/josm/plugins/fr/cadastre/actions/mapmode/Address.java	(revision 35758)
@@ -51,4 +51,5 @@
 import org.openstreetmap.josm.data.coor.EastNorth;
 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.OsmDataManager;
@@ -190,9 +191,9 @@
         } else {
             List<WaySegment> wss = mv.getNearestWaySegments(mousePos, OsmPrimitive::isSelectable);
-            for (WaySegment ws : wss) {
-                if (ws.way.get(tagHighway) != null && ws.way.get(tagHighwayName) != null)
-                    mouseOnExistingWays.add(ws.way);
-                else if (ws.way.get(tagBuilding) != null && ws.way.get(tagHouseNumber) == null)
-                    mouseOnExistingBuildingWays.add(ws.way);
+            for (IWaySegment<Node, Way> ws : wss) {
+                if (ws.getWay().get(tagHighway) != null && ws.getWay().get(tagHighwayName) != null)
+                    mouseOnExistingWays.add(ws.getWay());
+                else if (ws.getWay().get(tagBuilding) != null && ws.getWay().get(tagHouseNumber) == null)
+                    mouseOnExistingBuildingWays.add(ws.getWay());
             }
             if (mouseOnExistingWays.size() == 1) {
@@ -310,14 +311,14 @@
         List<WaySegment> wss = MainApplication.getMap().mapView.getNearestWaySegments(e.getPoint(), OsmPrimitive::isSelectable);
         Map<Way, List<Integer>> insertPoints = new HashMap<>();
-        for (WaySegment ws : wss) {
+        for (IWaySegment<Node, Way> ws : wss) {
             List<Integer> is;
-            if (insertPoints.containsKey(ws.way)) {
-                is = insertPoints.get(ws.way);
+            if (insertPoints.containsKey(ws.getWay())) {
+                is = insertPoints.get(ws.getWay());
             } else {
                 is = new ArrayList<>();
-                insertPoints.put(ws.way, is);
-            }
-
-            is.add(ws.lowerIndex);
+                insertPoints.put(ws.getWay(), is);
+            }
+
+            is.add(ws.getLowerIndex());
         }
         Set<Pair<Node, Node>> segSet = new HashSet<>();
