Index: src/org/openstreetmap/josm/data/osm/NodeGraph.java
===================================================================
--- src/org/openstreetmap/josm/data/osm/NodeGraph.java	(revision 18622)
+++ src/org/openstreetmap/josm/data/osm/NodeGraph.java	(working copy)
@@ -264,8 +264,8 @@
             while (!nextPairs.isEmpty()) {
                 NodePair cur = nextPairs.removeLast();
                 if (!dupCheck.contains(cur) && !dupCheck.contains(cur.swap())) {
-                    while (!path.isEmpty() && !path.peekLast().isPredecessorOf(cur)) {
-                        dupCheck.remove(path.removeLast());
+                    if(!path.isEmpty() && !path.peekLast().isPredecessorOf(cur)) {
+                        break;
                     }
                     path.addLast(cur);
                     dupCheck.add(cur);
