Index: /applications/editors/josm/plugins/waydownloader/src/WayDownloaderPlugin.java
===================================================================
--- /applications/editors/josm/plugins/waydownloader/src/WayDownloaderPlugin.java	(revision 16962)
+++ /applications/editors/josm/plugins/waydownloader/src/WayDownloaderPlugin.java	(revision 16963)
@@ -177,7 +177,7 @@
     /** See if there's another node at the same coordinates. If so return it. Otherwise null */
     private Node duplicateNode() {
-    	for (Node onNode:Main.main.getCurrentDataSet().nodes) {
+        for (Node onNode:Main.main.getCurrentDataSet().nodes) {
             if (!onNode.equals(this.selectedNode)
-            		&& !onNode.incomplete
+                    && !onNode.incomplete
                     && onNode.getCoor().lat()==selectedNode.getCoor().lat()
                     && onNode.getCoor().lon()==selectedNode.getCoor().lon()) {
@@ -217,16 +217,13 @@
     private boolean workFromWaySelection(Collection<OsmPrimitive> selection) {
 
-        if (selection.size()>1) {
-            //more than one way selected
+        if (selection.size() != 1)
             return false;
-        } else {
-            Way selectedWay = (Way) selection.toArray()[0];
-            selectedNode = selectedWay.firstNode();
-
-            if (isDownloaded(selectedNode)) {
-                selectedNode = findOtherEnd(selectedWay, selectedNode);
-
-                if (isDownloaded(selectedNode)) return false;
-            }
+        Way selectedWay = (Way) selection.iterator().next();
+        selectedNode = selectedWay.firstNode();
+
+        if (isDownloaded(selectedNode)) {
+            selectedNode = selectedWay.lastNode();
+
+            if (isDownloaded(selectedNode)) return false;
         }
         Main.main.getCurrentDataSet().setSelected(selectedNode);
