diff --git a/src/main.c b/src/main.c
index 8b30913d9523b58265338285c41704a842f7f865..bd0c7ec5e4044a4cd7fd3463dc00788dd3ed83db 100644
--- a/src/main.c
+++ b/src/main.c
@@ -30,11 +30,18 @@ int main()
   TD* FirstUserTask= CreateTask(&Colonel, Prio4, (void *) (&firstUserTaskChildren));
   pushToScheduler(&Colonel, FirstUserTask);
   TD* Task;
+  int ReturnValue = 0;
   FOREVER {
-    Task = getNextTaskScheduler(&Colonel);
+    if(Colonel.Active == NULL){
+      ReturnValue = 0;
+      Task = getNextTaskScheduler(&Colonel);
+    }else{
+      Task = Colonel.Active;
+      ReturnValue = Task->RetVal;
+    }
     bwprintf(COM2,"task = %d\n\r",Task);
     if(Task == NULL) break;
-    req = Activate(&Colonel,Task,0);
+    req = Activate(&Colonel,Task,ReturnValue);
     Handle(&Colonel, req);
   }
   return 0;