Index: src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java	(revision 17106)
+++ src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java	(working copy)
@@ -163,7 +163,7 @@
         // super.enterMode() updates the status line and cursor so we need our state to be set correctly
         setMode(Mode.NORMAL);
         pWays = null;
-
+        MainApplication.getMap().statusLine.setAutoLength(false);
         super.enterMode();
 
         mv.addMouseListener(this);
@@ -186,7 +186,7 @@
         mv.removeTemporaryLayer(temporaryLayer);
         MapFrame map = MainApplication.getMap();
         map.statusLine.setDist(-1);
-        map.statusLine.repaint();
+        map.statusLine.setAutoLength(true);
         map.keyDetector.removeModifierExListener(this);
         removeWayHighlighting(sourceWays);
         pWays = null;
@@ -331,6 +331,7 @@
             } // else -> invalid modifier combination
         } else if (mode == Mode.DRAGGING) {
             clearSourceWays();
+            MainApplication.getMap().statusLine.setDist(pWays.getWays());
         }
 
         setMode(Mode.NORMAL);
Index: src/org/openstreetmap/josm/gui/MapStatus.java
===================================================================
--- src/org/openstreetmap/josm/gui/MapStatus.java	(revision 17106)
+++ src/org/openstreetmap/josm/gui/MapStatus.java	(working copy)
@@ -762,6 +762,9 @@
         }
     };
 
+    /** see #19887: determine if the {@code distValue} field should be filled with length of selected object */
+    private boolean autoLength = true;
+
     private void registerListeners() {
         // Listen to keyboard/mouse events for pressing/releasing alt key and inform the collector.
         try {
@@ -1185,6 +1188,10 @@
     }
 
     private void refreshDistText(Collection<? extends OsmPrimitive> newSelection) {
+        if (!autoLength) {
+            return;
+        }
+
         if (newSelection.size() == 2) {
             Iterator<? extends OsmPrimitive> it = newSelection.iterator();
             OsmPrimitive n1 = it.next();
@@ -1263,4 +1270,15 @@
             refreshDistText(event.getDataset().getSelected());
         }
     }
+
+    /**
+     * Enable or disable the automatic refresh of the length field.
+     * @param b if {@code true} the automatic refresh is enabled, else disabled
+     * @since xxx
+     */
+    public void setAutoLength(boolean b) {
+        autoLength = b;
+    }
+
+
 }
