Index: branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/CommandLineArgumentHandling/CommandLineArgumentHandling.cs
===================================================================
--- branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/CommandLineArgumentHandling/CommandLineArgumentHandling.cs	(revision 13401)
+++ branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/CommandLineArgumentHandling/CommandLineArgumentHandling.cs	(revision 14029)
@@ -43,5 +43,5 @@
 
     private static ICommandLineArgument ParseArgument(string entry) {
-      var regex = new Regex(@"^/[A-Za-z]+(:[A-Za-z0-9\s]+)?$");
+      var regex = new Regex(@"^/[A-Za-z]+(:\w[\w\s]*)?$");
       bool isFile = File.Exists(entry);
       if (!regex.IsMatch(entry) && !isFile) return null;
Index: branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/Properties/AssemblyInfo.cs.frame	(revision 13401)
+++ branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/Properties/AssemblyInfo.cs.frame	(revision 14029)
@@ -56,3 +56,3 @@
 //
 [assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.12.$WCREV$")]
+[assembly: AssemblyFileVersion("3.3.13.$WCREV$")]
Index: branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/Properties/Settings.Designer.cs
===================================================================
--- branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/Properties/Settings.Designer.cs	(revision 13401)
+++ branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/Properties/Settings.Designer.cs	(revision 14029)
@@ -2,5 +2,5 @@
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.34014
+//     Runtime Version:4.0.30319.42000
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
@@ -13,5 +13,5 @@
     
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
     public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
         
@@ -83,4 +83,40 @@
             }
         }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
+        public global::System.Drawing.Point StarterFormLocation {
+            get {
+                return ((global::System.Drawing.Point)(this["StarterFormLocation"]));
+            }
+            set {
+                this["StarterFormLocation"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
+        public global::System.Drawing.Size StarterFormSize {
+            get {
+                return ((global::System.Drawing.Size)(this["StarterFormSize"]));
+            }
+            set {
+                this["StarterFormSize"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("Normal")]
+        public global::System.Windows.Forms.FormWindowState StarterFormWindowState {
+            get {
+                return ((global::System.Windows.Forms.FormWindowState)(this["StarterFormWindowState"]));
+            }
+            set {
+                this["StarterFormWindowState"] = value;
+            }
+        }
     }
 }
Index: branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/Properties/Settings.settings
===================================================================
--- branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/Properties/Settings.settings	(revision 13401)
+++ branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/Properties/Settings.settings	(revision 14029)
@@ -18,4 +18,13 @@
       <Value Profile="(Default)">http://services.heuristiclab.com/Deployment-3.3/AdminService.svc</Value>
     </Setting>
+    <Setting Name="StarterFormLocation" Type="System.Drawing.Point" Scope="User">
+      <Value Profile="(Default)">0, 0</Value>
+    </Setting>
+    <Setting Name="StarterFormSize" Type="System.Drawing.Size" Scope="User">
+      <Value Profile="(Default)">0, 0</Value>
+    </Setting>
+    <Setting Name="StarterFormWindowState" Type="System.Windows.Forms.FormWindowState" Scope="User">
+      <Value Profile="(Default)">Normal</Value>
+    </Setting>
   </Settings>
 </SettingsFile>
Index: branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.cs
===================================================================
--- branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.cs	(revision 13401)
+++ branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.cs	(revision 14029)
@@ -22,4 +22,5 @@
 using System;
 using System.Collections.Generic;
+using System.Drawing;
 using System.IO;
 using System.Linq;
@@ -29,4 +30,5 @@
 using HeuristicLab.PluginInfrastructure.Advanced;
 using HeuristicLab.PluginInfrastructure.Manager;
+using HeuristicLab.PluginInfrastructure.Properties;
 
 namespace HeuristicLab.PluginInfrastructure.Starter {
@@ -67,4 +69,10 @@
       splashScreen.Show(this, "Loading HeuristicLab...");
 
+      if (CheckSavedStarterFormSettings()) {
+        Location = Settings.Default.StarterFormLocation;
+        Size = Settings.Default.StarterFormSize;
+        WindowState = Settings.Default.StarterFormWindowState;
+      }
+
       pluginManager.DiscoverAndCheckPlugins();
       UpdateApplicationsList();
@@ -96,4 +104,16 @@
       splashScreen.Close();
       abortRequested = true;
+
+      if (WindowState != FormWindowState.Minimized)
+        Settings.Default.StarterFormWindowState = WindowState;
+      if (WindowState != FormWindowState.Normal) {
+        Settings.Default.StarterFormLocation = RestoreBounds.Location;
+        Settings.Default.StarterFormSize = RestoreBounds.Size;
+      } else if (WindowState == FormWindowState.Normal) {
+        Settings.Default.StarterFormLocation = Location;
+        Settings.Default.StarterFormSize = Size;
+      }
+
+      Settings.Default.Save();
     }
 
@@ -177,4 +197,12 @@
 
     #region Helpers
+    private bool CheckSavedStarterFormSettings() {
+      var formArea = new Rectangle(Settings.Default.StarterFormLocation, Settings.Default.StarterFormSize);
+      var screenArea = Screen.FromRectangle(formArea).WorkingArea;
+      var overlappingArea = Rectangle.Intersect(formArea, screenArea);
+      bool offLimits = overlappingArea.IsEmpty || overlappingArea.Width * overlappingArea.Height < formArea.Width * formArea.Height * 0.25;
+      return !formArea.IsEmpty && !offLimits;
+    }
+
     private void UpdateApplicationsList() {
       if (InvokeRequired) Invoke((Action)UpdateApplicationsList);
Index: branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/app.config
===================================================================
--- branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/app.config	(revision 13401)
+++ branches/crossvalidation-2434/HeuristicLab.PluginInfrastructure/3.3/app.config	(revision 14029)
@@ -23,4 +23,13 @@
       <setting name="UpdateLocationAdministrationAddress" serializeAs="String">
         <value>http://services.heuristiclab.com/Deployment-3.3/AdminService.svc</value>
+      </setting>
+      <setting name="StarterFormLocation" serializeAs="String">
+        <value>0, 0</value>
+      </setting>
+      <setting name="StarterFormSize" serializeAs="String">
+        <value>0, 0</value>
+      </setting>
+      <setting name="StarterFormWindowState" serializeAs="String">
+        <value>Normal</value>
       </setting>
     </HeuristicLab.PluginInfrastructure.Properties.Settings>
