Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 4538)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 4539)
@@ -53,7 +53,8 @@
 import org.openstreetmap.josm.tools.Pair;
 import org.openstreetmap.josm.tools.Shortcut;
+import org.openstreetmap.josm.tools.Utils;
 
 /**
- *
+ * Mapmode to add nodes, create and extend ways.
  */
 public class DrawAction extends MapMode implements MapViewPaintable, SelectionChangedListener, AWTEventListener {
@@ -98,4 +99,16 @@
         updateStatusLine();
         if ((!drawHelperLine || wayIsFinished) && !drawTargetHighlight) return;
+        // update selection to reflect which way being modified
+        if (currentBaseNode != null && getCurrentDataSet().getSelected().isEmpty() == false) {
+            Way continueFrom = getWayForNode(currentBaseNode);
+            if (alt && continueFrom != null) {
+                getCurrentDataSet().beginUpdate(); // to prevent the selection listener to screw around with the state
+                getCurrentDataSet().addSelected(currentBaseNode);
+                getCurrentDataSet().clearSelection(continueFrom);
+                getCurrentDataSet().endUpdate();
+            } else if (!alt && continueFrom != null) {
+                getCurrentDataSet().addSelected(continueFrom);
+            }
+        }
         Main.map.mapView.repaint();
     }
@@ -294,7 +307,12 @@
                 // (this is just a convenience option so that people don't
                 // have to switch modes)
-                newSelection.clear();
-                newSelection.add(n);
+
                 getCurrentDataSet().setSelected(n);
+                // If we extend/continue an existing way, select it already now to make it obvious
+                Way continueFrom = getWayForNode(n);
+                if (continueFrom != null) {
+                    getCurrentDataSet().addSelected(continueFrom);
+                }
+
                 // The user explicitly selected a node, so let him continue drawing
                 wayIsFinished = false;
@@ -718,5 +736,5 @@
     public Way getWayForNode(Node n) {
         Way way = null;
-        for (Way w : OsmPrimitive.getFilteredList(n.getReferrers(), Way.class)) {
+        for (Way w : Utils.filteredCollection(n.getReferrers(), Way.class)) {
             if (!w.isUsable() || w.getNodesCount() < 1) {
                 continue;
