diff --git a/src/Global.java b/src/Global.java
index e4442dae810bb63530271b435ac22c1fdfe75a6f..cdfbff6ffbe1d9e8fb295155aa3f1e26c61aa375 100644
--- a/src/Global.java
+++ b/src/Global.java
@@ -14,7 +14,6 @@ public class Global {
 		
 		if (t.isKernel) {
 			srtf.add(t);
-			rr.stop();
 		} else {
 			rr.add(t);
 		}
@@ -22,6 +21,7 @@ public class Global {
 	
 	public void tick() {
 		if(srtf.isEmpty() && rr.isEmpty()) {Main.schedulersEmpty = true; return;}
+		else if(!srtf.isEmpty()) rr.stop();
 	
 		srtf.tick();
 		rr.tick();
diff --git a/src/RR.java b/src/RR.java
index 59e76d7f38ba7c1c4b855d6f131c914e4a1d527b..9221b29a97962f820b1cf57fbfbc20d54eacf2cf 100644
--- a/src/RR.java
+++ b/src/RR.java
@@ -21,17 +21,14 @@ public class RR {
 	}
 	
 	public void start() {
-		if(!enabled) {
-			if (activeTask != null) waitingQueue.add(activeTask);
-			activeTask = null;
-		}
-		
 		enabled = true;
 	}
 	
 	public void stop() {
 		enabled = false;
 		runningFor = 0;
+		if (activeTask != null) waitingQueue.add(activeTask);
+		activeTask = null;
 	}
 	
 	public void add(Task t) {