Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 1047)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 1048)
@@ -122,6 +122,4 @@
 		}
 
-		SplashScreen splash = new SplashScreen();
-		splash.setStatus(tr("Reading preferences"));
 		// get the preferences.
 		final File prefDir = new File(Main.pref.getPreferencesDir());
@@ -161,4 +159,6 @@
 			Main.pref.save();
 		}
+		SplashScreen splash = new SplashScreen(Main.pref.getBoolean("draw.splashscreen", true));
+
 		String language = null;
 		if(args.containsKey("language"))
Index: trunk/src/org/openstreetmap/josm/gui/SplashScreen.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/SplashScreen.java	(revision 1047)
+++ trunk/src/org/openstreetmap/josm/gui/SplashScreen.java	(revision 1048)
@@ -34,9 +34,14 @@
 
 	private JLabel status;
+	private boolean visible;
 
 	private Runnable closerRunner;
 
-	public SplashScreen() {
+	public SplashScreen(boolean visible) {
 		super();
+		this.visible=visible;
+
+		if (!visible)
+			return;
 
 		// Add a nice border to the main splash screen
@@ -126,4 +131,6 @@
 	 */
 	public void setStatus(String message) {
+		if (!visible)
+			return;
 		status.setText(message + " ...");
 	}
@@ -133,4 +140,6 @@
 	 */
 	public void closeSplash() {
+		if (!visible)
+			return;
 		try {
 			SwingUtilities.invokeAndWait(closerRunner);
Index: trunk/src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java	(revision 1047)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java	(revision 1048)
@@ -30,4 +30,5 @@
 	private JCheckBox inactive = new JCheckBox(tr("Draw inactive layers in other color"));
 	private JCheckBox useAntialiasing = new JCheckBox(tr("Smooth map graphics (antialiasing)"));
+	private JCheckBox showSplashScreen = new JCheckBox(tr("Show splash screen at startup"));
 
 	public void addGui(PreferenceDialog gui) {
@@ -132,4 +133,9 @@
 		inactive.setSelected(Main.pref.getBoolean("draw.data.inactive_color", true));
 		gui.display.add(inactive, GBC.eop().insets(20,0,0,0));
+
+		// Show splash screen on startup
+		showSplashScreen.setToolTipText(tr("Show splash screen at startup"));
+		showSplashScreen.setSelected(Main.pref.getBoolean("draw.splashscreen", true));
+		gui.display.add(showSplashScreen, GBC.eop().insets(20, 0, 0, 0));
 	}
 
@@ -148,4 +154,5 @@
 		Main.pref.put("draw.data.inactive_color", inactive.isSelected());
 		Main.pref.put("mappaint.use-antialiasing", useAntialiasing.isSelected());
+		Main.pref.put("draw.splashscreen", showSplashScreen.isSelected());
 		int vn = Main.pref.getInteger("mappaint.node.virtual-size", 8);
 		if(virtualNodes.isSelected()) {	if (vn < 1) vn = 8; }
