Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 14760)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 14761)
@@ -16,8 +16,6 @@
 import org.openstreetmap.josm.data.Bounds.ParseMethod;
 import org.openstreetmap.josm.data.ProjectionBounds;
-import org.openstreetmap.josm.data.ViewportData;
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.gui.MainApplication;
-import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.gui.io.importexport.GpxImporter;
@@ -161,8 +159,4 @@
                 mergeLayer.mergeFrom(layer);
                 mergeLayer.invalidate();
-                MapFrame map = MainApplication.getMap();
-                if (map != null && zoomAfterDownload && layer instanceof GpxLayer) {
-                    map.mapView.scheduleZoomTo(new ViewportData(layer.getViewProjectionBounds()));
-                }
                 return mergeLayer;
             }
Index: trunk/src/org/openstreetmap/josm/gui/io/importexport/GpxImporter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/importexport/GpxImporter.java	(revision 14760)
+++ trunk/src/org/openstreetmap/josm/gui/io/importexport/GpxImporter.java	(revision 14761)
@@ -145,7 +145,5 @@
         GpxLayer gpxLayer = null;
         MarkerLayer markerLayer = null;
-        if (data.hasRoutePoints() || data.hasTrackPoints()) {
-            gpxLayer = new GpxLayer(data, gpxLayerName, data.storageFile != null);
-        }
+        gpxLayer = new GpxLayer(data, gpxLayerName, data.storageFile != null);
         if (Config.getPref().getBoolean("marker.makeautomarkers", true) && !data.waypoints.isEmpty()) {
             markerLayer = new MarkerLayer(data, markerLayerName, data.storageFile, gpxLayer);
Index: trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java	(revision 14760)
+++ trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java	(revision 14761)
@@ -51,7 +51,8 @@
         boolean done = false;
         GpxData result = null;
+        final int pointsPerPage = 5000; // see https://wiki.openstreetmap.org/wiki/API_v0.6#GPS_traces
         String url = "trackpoints?bbox="+b.getMinLon()+','+b.getMinLat()+','+b.getMaxLon()+','+b.getMaxLat()+"&page=";
         for (int i = 0; !done && !isCanceled(); ++i) {
-            progressMonitor.subTask(tr("Downloading points {0} to {1}...", i * 5000, (i + 1) * 5000));
+            progressMonitor.subTask(tr("Downloading points {0} to {1}...", i * pointsPerPage, (i + 1) * pointsPerPage));
             try (InputStream in = getInputStream(url+i, progressMonitor.createSubTaskMonitor(1, true))) {
                 if (in == null) {
@@ -65,4 +66,8 @@
                     result = currentGpx;
                 } else if (currentGpx.hasTrackPoints()) {
+                    long count = currentGpx.getTrackPoints().count();
+                    Logging.debug("got {0} gpx points", count);
+                    if (count < pointsPerPage)
+                        done = true;
                     result.mergeFrom(currentGpx);
                 } else {
