Index: trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 14984)
+++ trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 14985)
@@ -302,5 +302,5 @@
                 break;
             case DOWNLOAD:
-                modeDownload(new BoundingXYVisitor());
+                modeDownload();
                 break;
             }
@@ -395,9 +395,10 @@
     }
 
-    private void modeDownload(BoundingXYVisitor v) {
+    private void modeDownload() {
         if (lastZoomTime > 0 &&
                 System.currentTimeMillis() - lastZoomTime > Config.getPref().getLong("zoom.bounds.reset.time", TimeUnit.SECONDS.toMillis(10))) {
             lastZoomTime = -1;
         }
+        Bounds bbox = null;
         final DataSet dataset = getLayerManager().getActiveDataSet();
         if (dataset != null) {
@@ -407,13 +408,13 @@
                 if (lastZoomTime == -1 || lastZoomArea == -1 || lastZoomArea > s) {
                     lastZoomArea = s-1;
-                    v.visit(dataSources.get(lastZoomArea).bounds);
+                    bbox = dataSources.get(lastZoomArea).bounds;
                 } else if (lastZoomArea > 0) {
                     lastZoomArea -= 1;
-                    v.visit(dataSources.get(lastZoomArea).bounds);
+                    bbox = dataSources.get(lastZoomArea).bounds;
                 } else {
                     lastZoomArea = -1;
                     Area sourceArea = getLayerManager().getActiveDataSet().getDataSourceArea();
                     if (sourceArea != null) {
-                        v.visit(new Bounds(sourceArea.getBounds2D()));
+                        bbox = new Bounds(sourceArea.getBounds2D());
                     }
                 }
@@ -423,6 +424,8 @@
                 lastZoomArea = -1;
             }
-        }
-        MainApplication.getMap().mapView.zoomTo(v);
+            if (bbox != null) {
+                MainApplication.getMap().mapView.zoomTo(bbox);
+            }
+        }
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 14984)
+++ trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 14985)
@@ -811,7 +811,5 @@
         if (viewport == null) return;
         if (viewport.getBounds() != null) {
-            BoundingXYVisitor v = new BoundingXYVisitor();
-            v.visit(viewport.getBounds());
-            zoomTo(v);
+            zoomTo(viewport.getBounds());
         } else {
             zoomTo(viewport.getCenter(), viewport.getScale(), true);
