diff --git a/bundles/org.eclipse.e4.core.deeplink/src/org/eclipse/e4/core/deeplink/internal/InstallationLauncher.java b/bundles/org.eclipse.e4.core.deeplink/src/org/eclipse/e4/core/deeplink/internal/InstallationLauncher.java
index f6b72f6..0e54e4a 100644
--- a/bundles/org.eclipse.e4.core.deeplink/src/org/eclipse/e4/core/deeplink/internal/InstallationLauncher.java
+++ b/bundles/org.eclipse.e4.core.deeplink/src/org/eclipse/e4/core/deeplink/internal/InstallationLauncher.java
@@ -57,7 +57,7 @@
 		if (!commandLine.hasValue()) {
 			throw new IllegalArgumentException("Unable to launch installation: " + installation);
 		}
-		String commandDir = rootFolder + "\\" + installation;
+		String commandDir = rootFolder + File.separator + installation;
 		startApplication(commandLine.get(), commandDir);
 	}
 
@@ -99,20 +99,35 @@
 		} catch (IOException e) {
 			throw new RuntimeException("Unable to launch: " + command, e);
 		}
-	}
+	}
+	
+	String[] startupCommands = new String[] {
+			"eclipse.exe",
+			"eclipse",
+			"launcher.exe",
+			"launcher"
+	};
 
 	private Option<String> computeStartupCommandLine(String installation,
-			String command) {
+			String command) {
+		// Try whatever's in the properties file (if anything)
 		Option<String> result = validateCommand(installation, command);
 		if (result.hasValue()) {
 			return result;
-		}
-		return validateCommand(installation, "eclipse.exe");
+		}
+		// Fall back to Eclipse default commands
+		for (String possibleCommand : startupCommands) {
+			Option<String> possibleResult = validateCommand(installation, possibleCommand);
+			if (possibleResult.hasValue()) {
+				return possibleResult;
+			}
+		}
+		return none();
 	}
 
 	private Option<String> validateCommand(String installation, String command) {
 		if (command != null) {
-			String commandLine = rootFolder + "\\" + installation + "\\" + command;
+			String commandLine = rootFolder + File.separator + installation + File.separator + command;
 			if (new File(commandLine).exists()) {
 				return some(commandLine);
 			} else {
