Index: trunk/src/org/openstreetmap/josm/data/osm/Way.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/Way.java	(revision 4137)
+++ trunk/src/org/openstreetmap/josm/data/osm/Way.java	(revision 4138)
@@ -532,3 +532,16 @@
         return super.isDrawable() && !hasIncompleteNodes();
     }
+
+
+    /* since revision 4138 */
+    public double getLength() {
+        double length = 0;
+        Node lastN = null;
+        for (Node n:nodes) {
+            if(lastN != null)
+                length += n.getCoor().greatCircleDistance(lastN.getCoor());
+            lastN = n;
+        }
+        return length;
+    }
 }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 4137)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 4138)
@@ -624,4 +624,11 @@
             fireContentsChanged(this, 0, getSize());
             remember(selection);
+            double dist = -1;
+            if(this.selection.size() == 1) {
+                OsmPrimitive o = this.selection.get(0);
+                if(o instanceof Way)
+                   dist = ((Way)o).getLength();
+            }
+            Main.map.statusLine.setDist(dist);
         }
 
