Index: src/main/java/net/sf/mzmine/desktop/impl/MainMenu.java
===================================================================
--- src/main/java/net/sf/mzmine/desktop/impl/MainMenu.java	(revision 3468)
+++ src/main/java/net/sf/mzmine/desktop/impl/MainMenu.java	(working copy)
@@ -33,13 +33,13 @@
 import javax.swing.JMenu;
 import javax.swing.JMenuBar;
 import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
 import javax.swing.KeyStroke;
 
 import net.sf.mzmine.datamodel.PeakList;
 import net.sf.mzmine.datamodel.RawDataFile;
 import net.sf.mzmine.desktop.preferences.MZminePreferences;
 import net.sf.mzmine.main.MZmineCore;
+import net.sf.mzmine.main.NewVersionCheck;
 import net.sf.mzmine.modules.MZmineModuleCategory;
 import net.sf.mzmine.modules.MZmineProcessingModule;
 import net.sf.mzmine.parameters.Parameter;
@@ -401,28 +401,10 @@
 	    mainWindow.showAboutDialog();
 	}
 	
-	if (src == checkUpdate) {
-		logger.info("Check for update ...");
-
-		String currentVersion = "", newestVersion = "", msg = "";
-		currentVersion = MZmineCore.getMZmineVersion();
-		newestVersion = MZmineCore.newestMZmineVersion();
-
-		if (newestVersion == "0") {
-			msg = "An error occured. Please make sure that you are connected to the internet or try again later.";
-			logger.info(msg);
-			JOptionPane.showMessageDialog(null, msg, "Update", JOptionPane.INFORMATION_MESSAGE);
-		}
-		else if (currentVersion == newestVersion || currentVersion == "0.0") {
-			msg = "No updated version of MZmine is available";
-			logger.info(msg);
-			JOptionPane.showMessageDialog(null, msg, "Update", JOptionPane.INFORMATION_MESSAGE);
-		}
-		else {
-			msg = "An updated version is available: MZmine "+newestVersion;
-			logger.info(msg);
-			JOptionPane.showMessageDialog(null, msg +"\nPlease download the newest version from: http://mzmine.sourceforge.net", "Update", JOptionPane.INFORMATION_MESSAGE);
-		}
+	if (src == checkUpdate) { // Check for updated version
+		NewVersionCheck NVC = new NewVersionCheck();
+		new Thread(NVC).start();
+		NVC.run("menu");
 	}
 
     }
Index: src/main/java/net/sf/mzmine/main/MZmineCore.java
===================================================================
--- src/main/java/net/sf/mzmine/main/MZmineCore.java	(revision 3468)
+++ src/main/java/net/sf/mzmine/main/MZmineCore.java	(working copy)
@@ -19,12 +19,9 @@
 
 package net.sf.mzmine.main;
 
-import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URL;
 import java.util.Collection;
 import java.util.Hashtable;
 import java.util.Locale;
@@ -54,6 +51,7 @@
 import net.sf.mzmine.taskcontrol.TaskController;
 import net.sf.mzmine.taskcontrol.impl.TaskControllerImpl;
 import net.sf.mzmine.util.ExitCode;
+import net.sf.mzmine.main.NewVersionCheck;
 
 /**
  * MZmine main class
@@ -208,19 +206,13 @@
 			logger.info("Showing main window");
 			desktop.getMainWindow().setVisible(true);
 
-			// Check for updated version
-			String currentVersion = "", newestVersion = "";
-			currentVersion = getMZmineVersion();
-			newestVersion = newestMZmineVersion();
+			// show the welcome message
+			desktop.setStatusBarText("Welcome to MZmine 2!");
 
-			if (currentVersion == newestVersion || currentVersion == "0.0" || newestVersion == "0") {
-				// show the welcome message
-				desktop.setStatusBarText("Welcome to MZmine 2!");
-			}
-			else {
-				// show the welcome message
-				desktop.setStatusBarText("Welcome to MZmine 2! An updated version is available: MZmine "+newestVersion);
-			}
+			// Check for updated version
+			NewVersionCheck NVC = new NewVersionCheck();
+			new Thread(NVC).start();
+			NVC.run("desktop");
 
 			// register shutdown hook only if we have GUI - we don't want to
 			// save configuration on exit if we only run a batch
@@ -305,20 +297,4 @@
 		}
 	}
 
-	@Nonnull
-	public static String newestMZmineVersion() {
-		try {
-			URL url = new URL("http://mzmine.sourceforge.net/version.txt");
-			// Open the stream and put it into BufferedReader
-			BufferedReader buffer = new BufferedReader(new InputStreamReader(url.openStream()));
-			String newestVersion = "";
-
-			newestVersion = buffer.readLine();
-			buffer.close();
-			return newestVersion;
-		} catch (Exception e) {
-			return "0";
-		}
-	}
-
 }
Index: src/main/java/net/sf/mzmine/main/NewVersionCheck.java
===================================================================
--- src/main/java/net/sf/mzmine/main/NewVersionCheck.java	(revision 0)
+++ src/main/java/net/sf/mzmine/main/NewVersionCheck.java	(revision 0)
@@ -0,0 +1,62 @@
+package net.sf.mzmine.main;
+
+import java.awt.Color;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.logging.Logger;
+
+import javax.swing.JOptionPane;
+
+import net.sf.mzmine.desktop.Desktop;
+
+public class NewVersionCheck implements Runnable {
+	private Logger logger = Logger.getLogger(this.getClass().getName());
+	
+	public void run(String info) {
+    	// Check for updated version
+		String currentVersion = "", newestVersion = "", msg = "";
+		currentVersion = MZmineCore.getMZmineVersion();
+		
+		try {
+			URL url = new URL("http://mzmine.sourceforge.net/version.txt");
+			// Open the stream and put it into BufferedReader
+			BufferedReader buffer = new BufferedReader(new InputStreamReader(url.openStream()));
+
+			newestVersion = buffer.readLine();
+			buffer.close();
+		} catch (Exception e) {
+			newestVersion = "0";
+		}
+
+		if (newestVersion == "0") {
+			if (info == "menu") {
+				msg = "An error occured. Please make sure that you are connected to the internet or try again later.";
+				logger.info(msg);
+				JOptionPane.showMessageDialog(null, msg, "Update", JOptionPane.INFORMATION_MESSAGE);
+			}
+		}
+		else if (currentVersion == newestVersion || currentVersion == "0.0") {
+			if (info == "menu") {
+				msg = "No updated version of MZmine is available";
+				logger.info(msg);
+				JOptionPane.showMessageDialog(null, msg, "Update", JOptionPane.INFORMATION_MESSAGE);
+			}
+		}
+		else {
+			msg = "An updated version is available: MZmine "+newestVersion;
+			logger.info(msg);
+			if (info == "menu") {
+				JOptionPane.showMessageDialog(null, msg +"\nPlease download the newest version from: http://mzmine.sourceforge.net", "Update", JOptionPane.INFORMATION_MESSAGE);
+			}
+			else if (info == "desktop") {
+				Desktop desktop = MZmineCore.getDesktop();
+				desktop.setStatusBarText(msg +". Please download the newest version from: http://mzmine.sourceforge.net", Color.red);
+			}
+		}
+	}
+
+	@Override
+	public void run() {
+	}
+}
