diff -ur --exclude='*.svn*' josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java josm dev/src/org/openstreetmap/josm/actions/AutoScaleAction.java
--- josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java	2008-12-29 19:42:40.000000000 +0100
+++ josm dev/src/org/openstreetmap/josm/actions/AutoScaleAction.java	2009-01-18 19:11:29.000000000 +0100
@@ -11,6 +11,7 @@
 import javax.swing.JOptionPane;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
 import org.openstreetmap.josm.gui.layer.Layer;
@@ -22,7 +23,7 @@
  */
 public class AutoScaleAction extends JosmAction {
 
-    public static final String[] modes = { marktr("data"), marktr("layer"), marktr("selection"), marktr("conflict") };
+    public static final String[] modes = { marktr("data"), marktr("layer"), marktr("selection"), marktr("conflict"), marktr("download") };
     private final String mode;
 
     private static int getModeShortcut(String mode) {
@@ -40,6 +41,9 @@
         if (mode.equals("conflict")) {
             shortcut = KeyEvent.VK_4;
         }
+        if (mode.equals("download")) {
+            shortcut = KeyEvent.VK_5;
+        }
 
         return shortcut;
     }
@@ -84,6 +88,23 @@
             // in most other cases as well.
             v.enlargeBoundingBox();
         }
+        else if (mode.equals("download")) {
+            if (Main.pref.hasKey("osm-download.bounds")) {
+                try {
+                    String bounds[] = Main.pref.get("osm-download.bounds").split(";");
+                    double minlat = Double.parseDouble(bounds[0]);
+                    double minlon = Double.parseDouble(bounds[1]);
+                    double maxlat = Double.parseDouble(bounds[2]);
+                    double maxlon = Double.parseDouble(bounds[3]);
+                    
+                    v.visit(Main.proj.latlon2eastNorth(new LatLon(minlat, minlon)));
+                    v.visit(Main.proj.latlon2eastNorth(new LatLon(maxlat, maxlon)));
+                }
+                catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
         return v;
     }
 }
