diff --git a/src/org/openstreetmap/josm/actions/AutoScaleAction.java b/src/org/openstreetmap/josm/actions/AutoScaleAction.java
index 2d6920c..684f3ab 100644
--- a/src/org/openstreetmap/josm/actions/AutoScaleAction.java
+++ b/src/org/openstreetmap/josm/actions/AutoScaleAction.java
@@ -7,6 +7,7 @@ import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
+import java.awt.geom.Area;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
@@ -35,6 +36,7 @@ public class AutoScaleAction extends JosmAction {
         marktr("selection"),
         marktr("conflict"),
         marktr("download"),
+        marktr("alldownload"),
         marktr("previous"),
         marktr("next")};
 
@@ -87,6 +89,7 @@ public class AutoScaleAction extends JosmAction {
         else if (mode.equals("selection")) { shortcut = KeyEvent.VK_3; }
         else if (mode.equals("conflict")) { shortcut = KeyEvent.VK_4; }
         else if (mode.equals("download")) { shortcut = KeyEvent.VK_5; }
+        else if (mode.equals("alldownload")) { shortcut = KeyEvent.VK_6; }
         else if (mode.equals("previous")) { shortcut = KeyEvent.VK_8; }
         else if (mode.equals("next")) { shortcut = KeyEvent.VK_9; }
 
@@ -118,7 +121,7 @@ public class AutoScaleAction extends JosmAction {
             putValue("help", ht("/Action/ZoomToSelection"));
         } else if (mode.equals("conflict")) {
             putValue("help", ht("/Action/ZoomToConflict"));
-        } else if (mode.equals("download")) {
+        } else if (mode.equals("download") || mode.equals("alldownload")) {
             putValue("help", ht("/Action/ZoomToDownload"));
         } else if (mode.equals("previous")) {
             putValue("help", ht("/Action/ZoomToPrevious"));
@@ -220,6 +223,9 @@ public class AutoScaleAction extends JosmAction {
                     e.printStackTrace();
                 }
             }
+        } else if (mode.equals("alldownload")) {
+            final Area dataSourceArea = Main.main.getCurrentDataSet().getDataSourceArea();
+            v.visit(new Bounds(dataSourceArea.getBounds2D()));
         }
         return v;
     }
@@ -239,6 +245,8 @@ public class AutoScaleAction extends JosmAction {
             setEnabled(Main.map != null && Main.map.mapView != null && Main.map.mapView.hasZoomUndoEntries());
         } else if ("next".equals(mode)) {
             setEnabled(Main.map != null && Main.map.mapView != null && Main.map.mapView.hasZoomRedoEntries());
+        } else if ("alldownload".equals(mode)) {
+            setEnabled(Main.main != null && Main.main.getCurrentDataSet() != null && Main.main.getCurrentDataSet().getDataSourceArea() != null);
         } else {
             setEnabled(
                     Main.isDisplayingMapView()
