Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 2327)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 2328)
@@ -424,5 +424,5 @@
                 //DownloadTask osmTask = main.menu.download.downloadTasks.get(0);
                 DownloadTask osmTask = new DownloadOsmTask();
-                Future<?> future = osmTask.download(main.menu.download, b, null);
+                Future<?> future = osmTask.download(true, b, null);
                 Main.worker.submit(new PostDownloadHandler(osmTask, future));
             }
@@ -475,5 +475,5 @@
                 DownloadTask task = rawGps ? new DownloadGpsTask() : new DownloadOsmTask();
                 // asynchronously launch the download task ...
-                Future<?> future = task.download(main.menu.download, b, null);
+                Future<?> future = task.download(true, b, null);
                 // ... and the continuation when the download is finished (this will wait for the download to finish)
                 Main.worker.execute(new PostDownloadHandler(task, future));
Index: trunk/src/org/openstreetmap/josm/actions/DownloadAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/DownloadAction.java	(revision 2327)
+++ trunk/src/org/openstreetmap/josm/actions/DownloadAction.java	(revision 2328)
@@ -34,5 +34,5 @@
     
 
-    public DownloadDialog dialog;
+    private DownloadDialog dialog;
     private ExtendedDialog downloadDialog;
 
@@ -78,5 +78,5 @@
                 if (dialog.isDownloadOsmData()) {
                     DownloadOsmTask task = new DownloadOsmTask();
-                    Future<?> future = task.download(this, dialog.getSelectedDownloadArea(), null);
+                    Future<?> future = task.download(dialog.isNewLayerRequired(), dialog.getSelectedDownloadArea(), null);
                     Main.worker.submit(new PostDownloadHandler(task, future));
                     finish = true;
@@ -84,5 +84,5 @@
                 if (dialog.isDownloadGpxData()) {
                     DownloadGpsTask task = new DownloadGpsTask();
-                    Future<?> future = task.download(this,dialog.getSelectedDownloadArea(), null);
+                    Future<?> future = task.download(dialog.isNewLayerRequired(),dialog.getSelectedDownloadArea(), null);
                     Main.worker.submit(new PostDownloadHandler(task, future));
                     finish = true;
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 2327)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 2328)
@@ -8,5 +8,4 @@
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.actions.DownloadAction;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.gpx.GpxData;
@@ -23,6 +22,6 @@
     private DownloadTask downloadTask;
 
-    public Future<?> download(DownloadAction action, Bounds downloadArea, ProgressMonitor progressMonitor) {
-        downloadTask = new DownloadTask(action.dialog.isNewLayerRequired(),
+    public Future<?> download(boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor) {
+        downloadTask = new DownloadTask(newLayer,
                 new BoundingBoxDownloader(downloadArea), progressMonitor);
         // We need submit instead of execute so we can wait for it to finish and get the error
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 2327)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 2328)
@@ -44,9 +44,6 @@
     }
 
-    public Future<?> download(DownloadAction action, Bounds downloadArea, ProgressMonitor progressMonitor) {
+    public Future<?> download(boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor) {
        
-        boolean newLayer = action != null
-        && (action.dialog == null || action.dialog.isNewLayerRequired());
-
         downloadTask = new DownloadTask(newLayer,
                 new BoundingBoxDownloader(downloadArea), progressMonitor);
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTaskList.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTaskList.java	(revision 2327)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTaskList.java	(revision 2328)
@@ -66,5 +66,5 @@
             childProgress.setSilent(true);
             childProgress.setCustomText(tr("Download {0} of {1} ({2} left)", i, rects.size(), rects.size() - i));
-            Future<?> future = dt.download(null, new Bounds(td), childProgress);
+            Future<?> future = dt.download(false, new Bounds(td), childProgress);
             osmTaskFutures.add(future);
             osmTasks.add(dt);
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadTask.java	(revision 2327)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadTask.java	(revision 2328)
@@ -5,5 +5,4 @@
 import java.util.concurrent.Future;
 
-import org.openstreetmap.josm.actions.DownloadAction;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
@@ -15,5 +14,5 @@
      * if no error messages should be popped up.
      */
-    Future<?> download(DownloadAction action, Bounds downloadArea, ProgressMonitor progressMonitor);
+    Future<?> download(boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor);
 
     /**
