diff -u -r orig/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java
--- orig/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	2009-01-19 22:58:35.593750000 +0100
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	2009-01-20 00:17:51.562500000 +0100
@@ -19,14 +19,15 @@
 import org.xml.sax.SAXException;
 
 public class DownloadGpsTask implements DownloadTask {
-
+    private boolean silent=false;
+  
     private static class Task extends PleaseWaitRunnable {
         private BoundingBoxDownloader reader;
         private GpxData rawData;
         private final boolean newLayer;
 
-        public Task(boolean newLayer, BoundingBoxDownloader reader) {
-            super(tr("Downloading GPS data"));
+        public Task(boolean newLayer, BoundingBoxDownloader reader, boolean silent) {
+            super(tr("Downloading GPS data"), silent);
             this.reader = reader;
             this.newLayer = newLayer;
         }
@@ -69,13 +70,17 @@
     private JCheckBox checkBox = new JCheckBox(tr("Raw GPS data"));
 
     public void download(DownloadAction action, double minlat, double minlon, double maxlat, double maxlon) {
-        Task task = new Task(action.dialog.newLayer.isSelected(), new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon));
+        Task task = new Task(action.dialog.newLayer.isSelected(), new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon), silent);
         Main.worker.execute(task);
     }
 
     public JCheckBox getCheckBox() {
         return checkBox;
     }
+    
+    public void setSilent(boolean silent) {
+        this.silent=silent;
+    }
 
     public String getPreferencesSuffix() {
         return "gps";
diff -u -r orig/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
--- orig/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	2009-01-19 22:58:34.562500000 +0100
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	2009-01-20 00:18:06.328125000 +0100
@@ -29,14 +29,15 @@
 public class DownloadOsmTask implements DownloadTask {
 
     private static Bounds currentBounds;
+    private boolean silent=false;
 
     private static class Task extends PleaseWaitRunnable {
         private OsmServerReader reader;
         private DataSet dataSet;
         private boolean newLayer;
 
-        public Task(boolean newLayer, OsmServerReader reader) {
-            super(tr("Downloading data"));
+        public Task(boolean newLayer, OsmServerReader reader, boolean silent) {
+            super(tr("Downloading data"), silent);
             this.reader = reader;
             this.newLayer = newLayer;
         }
@@ -80,18 +81,19 @@
             double t = minlon; minlon = maxlon; maxlon = t;
         }
 
-        Task task = new Task(action != null && (action.dialog == null || action.dialog.newLayer.isSelected()), new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon));
+        Task task = new Task(action != null && (action.dialog == null || action.dialog.newLayer.isSelected()), new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon), silent);
         currentBounds = new Bounds(new LatLon(minlat, minlon), new LatLon(maxlat, maxlon));
         Main.worker.execute(task);
     }
 
     public void loadUrl(boolean new_layer, String url) {
-        Task task = new Task(new_layer, new OsmServerLocationReader(url));
+        Task task = new Task(new_layer, new OsmServerLocationReader(url), silent);
         Main.worker.execute(task);
     }
-
-
-
+    
+    public void setSilent(boolean silent) {
+      this.silent=silent;
+    }
 
     public JCheckBox getCheckBox() {
         return checkBox;
diff -u -r orig/src/org/openstreetmap/josm/gui/download/DownloadDialog.java trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
--- orig/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	2009-01-19 22:59:25.859375000 +0100
+++ trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	2009-01-20 00:15:23.750000000 +0100
@@ -44,6 +44,7 @@
          */
         void download(DownloadAction action, double minlat, double minlon, double maxlat, double maxlon);
         void loadUrl(boolean newLayer, String url);
+        void setSilent(boolean silent);
         /**
          * @return The checkbox presented to the user
          */
diff -u -r orig/src/org/openstreetmap/josm/gui/layer/GpxLayer.java trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
--- orig/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	2009-01-18 23:34:45.000000000 +0100
+++ trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	2009-01-20 00:19:15.562500000 +0100
@@ -877,6 +877,7 @@
             // downloads left, and "cancel" needs to be honoured. An error along the way
             // should abort the whole process.
             DownloadTask osmTask = new DownloadOsmTask();
+            osmTask.setSilent(true);
             for (Rectangle2D td : toDownload) {
                osmTask.download(null, td.getMinY(), td.getMinX(), td.getMaxY(), td.getMaxX());
             }
diff -u -r orig/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java trunk/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java
--- orig/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java	2009-01-19 22:59:05.187500000 +0100
+++ trunk/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java	2009-01-20 00:18:36.031250000 +0100
@@ -29,14 +29,16 @@
 
     private boolean closeDialogCalled = false;
     private boolean cancelled = false;
+    private boolean silent = false;
 
     private final String title;
 
     /**
      * Create the runnable object with a given message for the user.
      */
-    public PleaseWaitRunnable(String title) {
+    public PleaseWaitRunnable(String title, boolean silent) {
         this.title = title;
+        this.silent = silent;
         Main.pleaseWaitDlg.cancel.addActionListener(new ActionListener(){
             public void actionPerformed(ActionEvent e) {
                 if (!cancelled) {
@@ -130,8 +132,12 @@
                         Main.pleaseWaitDlg.setVisible(false);
                         Main.pleaseWaitDlg.dispose();
                     }
-                    if (errorMessage != null)
-                        JOptionPane.showMessageDialog(Main.parent, errorMessage);
+                    if (errorMessage != null) {
+                        if(silent)
+                            System.out.println(errorMessage);
+                        else
+                            JOptionPane.showMessageDialog(Main.parent, errorMessage);
+                    }
                 }
             };
