Index: download/DownloadDialog.java
===================================================================
--- download/DownloadDialog.java	(revision 4859)
+++ download/DownloadDialog.java	(working copy)
@@ -13,11 +13,7 @@
 import java.awt.Graphics;
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.InputEvent;
-import java.awt.event.KeyEvent;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
+import java.awt.event.*;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -66,6 +62,7 @@
     private final List<DownloadSelection> downloadSelections = new ArrayList<DownloadSelection>();
     private final JTabbedPane tpDownloadAreaSelectors = new JTabbedPane();
     private JCheckBox cbNewLayer;
+    private JCheckBox cbStartup;
     private final JLabel sizeCheck = new JLabel();
     private Bounds currentBounds = null;
     private boolean canceled;
@@ -129,7 +126,16 @@
         cbNewLayer.setToolTipText(tr("<html>Select to download data into a new data layer.<br>"
                 +"Unselect to download into the currently active data layer.</html>"));
 
+        cbStartup = new JCheckBox(tr("Open this dialog on startup"));
+        cbStartup.setToolTipText(tr("<html>Autostarts download dialog every time JOSM is started.</html>"));
+        cbStartup.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent e) {
+                 Main.pref.put("download.autorun", cbStartup.isSelected());
+            }});
+
         pnl.add(cbNewLayer, GBC.std().anchor(GBC.WEST).insets(5,5,5,5));
+        pnl.add(cbStartup, GBC.std().anchor(GBC.WEST).insets(35,5,5,5));
         pnl.add(sizeCheck,  GBC.eol().anchor(GBC.EAST).insets(5,5,5,5));
 
         return pnl;
@@ -296,6 +302,7 @@
         cbDownloadOsmData.setSelected(Main.pref.getBoolean("download.osm", true));
         cbDownloadGpxData.setSelected(Main.pref.getBoolean("download.gps", false));
         cbNewLayer.setSelected(Main.pref.getBoolean("download.newlayer", false));
+        cbStartup.setSelected(Main.pref.getBoolean("download.autorun", true));
         int idx = Main.pref.getInteger("download.tab", 0);
         if (idx < 0 || idx > tpDownloadAreaSelectors.getTabCount()) {
             idx = 0;
@@ -321,7 +328,13 @@
             }
         }
     }
+    public static void autostartIfNeeded() {
+        if (Main.pref.getBoolean("download.autorun", true)) {
+            Main.main.menu.download.actionPerformed(null);
+        }
+}
+    
     /**
      * Replies the currently selected download area. May be null, if no download area is selected
      * yet.
Index: MainApplication.java
===================================================================
--- MainApplication.java	(revision 4859)
+++ MainApplication.java	(working copy)
@@ -6,6 +6,7 @@
 
 import java.awt.Image;
 import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.io.File;
@@ -31,6 +32,7 @@
 import org.openstreetmap.josm.data.AutosaveTask;
 import org.openstreetmap.josm.data.Preferences;
 import org.openstreetmap.josm.data.Version;
+import org.openstreetmap.josm.gui.download.DownloadDialog;
 import org.openstreetmap.josm.gui.preferences.server.OAuthAccessTokenHolder;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.io.DefaultProxySelector;
@@ -302,7 +304,8 @@
                 }
 
                 main.postConstructorProcessCmdLine(args);
+                DownloadDialog.autostartIfNeeded();
             }
         });
 
