diff --git a/CRM/Civirules/Engine.php b/CRM/Civirules/Engine.php
index 8ba70528960ed9b3b26b3705d814711448427ce7..283e1c254aac3148516e91defbc2fa85c6ad32d9 100644
--- a/CRM/Civirules/Engine.php
+++ b/CRM/Civirules/Engine.php
@@ -99,7 +99,7 @@ class CRM_Civirules_Engine {
     ));
 
     $stopTime = time() + $maxRunTime; //stop executing next item after 30 seconds
-    while((time() < $stopTime)) {
+    while((time() < $stopTime) && $queue->numberOfItems() > 0) {
       $result = $runner->runNext(false);
       $returnValues[] = $result;