Index: trunk/src/org/openstreetmap/josm/data/osm/Node.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/Node.java	(revision 16076)
+++ trunk/src/org/openstreetmap/josm/data/osm/Node.java	(revision 16077)
@@ -430,3 +430,8 @@
         return idGenerator;
     }
+
+    @Override
+    protected void updateDirectionFlags() {
+        // Nodes do not need/have a direction, greatly improves performance, see #18886
+    }
 }
Index: trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 16076)
+++ trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 16077)
@@ -607,5 +607,5 @@
     }
 
-    private void updateDirectionFlags() {
+    protected void updateDirectionFlags() {
         boolean hasDirections = false;
         boolean directionReversed = false;
