Index: /branches/eraser6/Eraser/Program.cs
===================================================================
--- /branches/eraser6/Eraser/Program.cs	(revision 736)
+++ /branches/eraser6/Eraser/Program.cs	(revision 737)
@@ -31,4 +31,5 @@
 using System.Globalization;
 using System.Reflection;
+using System.Diagnostics;
 
 namespace Eraser
@@ -82,4 +83,13 @@
 				using (Program.eraserClient = new RemoteExecutorClient())
 				{
+					if (!((RemoteExecutorClient)Program.eraserClient).Connect())
+					{
+						//The client cannot connect to the server. This probably means
+						//that the server process isn't running. Start an instance.
+						Process eraserInstance = Process.Start(
+							Assembly.GetExecutingAssembly().Location);
+						eraserInstance.WaitForInputIdle();
+					}
+
 					eraserClient.Run();
 					program.Run();
@@ -629,12 +639,11 @@
 		private void AddTask()
 		{
-			//Check that all our command line parameters are present.
 			AddTaskCommandLine arguments = (AddTaskCommandLine)Arguments;
-			if (arguments.ErasureMethod == Guid.Empty)
-				throw new ArgumentException("The --method parameter was not specified.");
-
+			
 			//Create the task, and set the method to use.
 			Task task = new Task();
-			ErasureMethod method = ErasureMethodManager.GetInstance(arguments.ErasureMethod);
+			ErasureMethod method = arguments.ErasureMethod == Guid.Empty ? 
+				ErasureMethodManager.Default :
+				ErasureMethodManager.GetInstance(arguments.ErasureMethod);
 			foreach (Task.ErasureTarget target in arguments.Targets)
 			{
Index: /branches/eraser6/Manager/RemoteExecutor.cs
===================================================================
--- /branches/eraser6/Manager/RemoteExecutor.cs	(revision 736)
+++ /branches/eraser6/Manager/RemoteExecutor.cs	(revision 737)
@@ -306,4 +306,21 @@
 		}
 
+		/// <summary>
+		/// Connects to the remote server.
+		/// </summary>
+		/// <returns>True if the connection to the remote server was established.</returns>
+		public bool Connect()
+		{
+			try
+			{
+				client.Connect(250);
+			}
+			catch (TimeoutException)
+			{
+			}
+
+			return client.IsConnected;
+		}
+
 		private object SendRequest(RemoteRequest header)
 		{
