Index: /applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/AdjacentNodesAction.java
===================================================================
--- /applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/AdjacentNodesAction.java	(revision 35469)
+++ /applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/AdjacentNodesAction.java	(revision 35470)
@@ -33,5 +33,5 @@
     }
 
-    private Set<Way> activeWays = new HashSet<>();
+    private transient Set<Way> activeWays = new HashSet<>();
 
     @Override
@@ -60,5 +60,5 @@
         // selecting nodes of selected ways
         if (selectedNodes.isEmpty()) {
-            HashSet<Node> newNodes = new HashSet<>();
+            Set<Node> newNodes = new LinkedHashSet<>();
             NodeWayUtils.addNodesConnectedToWays(selectedWays, newNodes);
             activeWays.clear();
@@ -71,5 +71,5 @@
         }
 
-        Set<Node> newNodes = new HashSet<>();
+        Set<Node> newNodes = new LinkedHashSet<>();
         for (Node node: selectedNodes) {
             for (Way w: activeWays) {
Index: /applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/NodeWayUtils.java
===================================================================
--- /applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/NodeWayUtils.java	(revision 35469)
+++ /applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/NodeWayUtils.java	(revision 35470)
@@ -258,4 +258,8 @@
         Set<Way> ways = new HashSet<>();
         ways.addAll(n1.getParentWays());
+        if (ways.stream().anyMatch(Way::isSelected)) {
+            // see #josm18735: use only selected ways
+            ways.removeIf(w -> !w.isSelected());
+        }
         for (Way w: ways) {
 
