Index: /trunk/eraser/Eraser.Manager/DirectExecutor.cs
===================================================================
--- /trunk/eraser/Eraser.Manager/DirectExecutor.cs	(revision 2542)
+++ /trunk/eraser/Eraser.Manager/DirectExecutor.cs	(revision 2543)
@@ -281,5 +281,15 @@
 						//time since we are done with this one.
 						if (task.Schedule is RecurringSchedule)
+						{
 							ScheduleTask(task);
+						}
+
+						//If the task is an execute on restart task or run immediately task, it is
+						//only run once and can now be restored to a manually run task
+						else if (task.Schedule == Schedule.RunOnRestart ||
+							task.Schedule == Schedule.RunNow)
+						{
+							task.Schedule = Schedule.RunManually;
+						}
 
 						//Remove the actively executing task from our instance variable
Index: /trunk/eraser/Eraser.Manager/Task.cs
===================================================================
--- /trunk/eraser/Eraser.Manager/Task.cs	(revision 2542)
+++ /trunk/eraser/Eraser.Manager/Task.cs	(revision 2543)
@@ -295,9 +295,4 @@
 				}
 
-				//If the task is an execute on restart task or run immediately task, it is
-				//only run once and can now be restored to a manually run task
-				if (Schedule == Schedule.RunOnRestart || Schedule == Schedule.RunNow)
-					Schedule = Schedule.RunManually;
-
 				Progress = null;
 				Executing = false;
