Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 4905)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 4906)
@@ -7,4 +7,5 @@
 import java.awt.Image;
 import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
@@ -32,4 +33,5 @@
 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;
@@ -304,4 +306,5 @@
                 main.postConstructorProcessCmdLine(args);
 
+                DownloadDialog.autostartIfNeeded();
             }
         });
Index: trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 4905)
+++ trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 4906)
@@ -15,4 +15,5 @@
 import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
 import java.awt.event.InputEvent;
 import java.awt.event.KeyEvent;
@@ -33,4 +34,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.ExpertToggleAction;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.gui.MapView;
@@ -67,4 +69,5 @@
     private final JTabbedPane tpDownloadAreaSelectors = new JTabbedPane();
     private JCheckBox cbNewLayer;
+    private JCheckBox cbStartup;
     private final JLabel sizeCheck = new JLabel();
     private Bounds currentBounds = null;
@@ -130,7 +133,20 @@
                 +"Unselect to download into the currently active data layer.</html>"));
 
+        cbStartup = new JCheckBox(tr("Open this dialog on startup"));
+        cbStartup.setToolTipText(tr("<html>Autostart Download from OSM dialog every time JOSM is started.<br>You can open it manually from File menu or by Ctrl-Shift-D</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(sizeCheck,  GBC.eol().anchor(GBC.EAST).insets(5,5,5,5));
-
+        pnl.add(cbStartup, GBC.std().anchor(GBC.WEST).insets(15,5,5,5));
+
+        pnl.add(sizeCheck,  GBC.eol().anchor(GBC.EAST).insets(5,5,5,2));
+        
+        if (!ExpertToggleAction.isExpert()) {
+            JLabel infoLabel  = new JLabel(tr("Use left click&drag to select area, arrows or right mouse button to scroll map, wheel or +/- to zoom"));
+            pnl.add(infoLabel,GBC.eol().anchor(GBC.SOUTH).insets(0,0,0,0));
+        }
         return pnl;
     }
@@ -297,4 +313,5 @@
         cbDownloadGpxData.setSelected(Main.pref.getBoolean("download.gps", false));
         cbNewLayer.setSelected(Main.pref.getBoolean("download.newlayer", false));
+        cbStartup.setSelected( isAutorunEnabled() ); 
         int idx = Main.pref.getInteger("download.tab", 0);
         if (idx < 0 || idx > tpDownloadAreaSelectors.getTabCount()) {
@@ -320,4 +337,17 @@
                 e.printStackTrace();
             }
+        }
+    }
+
+    public static boolean isAutorunEnabled() {
+        //String autorun=Main.pref.get("download.autorun",null);
+        //boolean expert=ExpertToggleAction.isExpert();
+        //return (autorun==null && !expert) || "true".equals(autorun) ;
+        return Main.pref.getBoolean("download.autorun",false);
+    }
+
+    public static void autostartIfNeeded() {
+        if (isAutorunEnabled()) {
+            Main.main.menu.download.actionPerformed(null);
         }
     }
