diff --git a/src/event/Loop.cxx b/src/event/Loop.cxx
index c50727c3a27bd3366e53c780a5c36e720ecd6701..ea19c2bd9d537620e47c2d34e693a7132d37c61c 100644
--- a/src/event/Loop.cxx
+++ b/src/event/Loop.cxx
@@ -326,15 +326,19 @@ EventLoop::Run() noexcept
 		{
 			const std::lock_guard<Mutex> lock(mutex);
 			HandleInject();
+#endif
+
+			if (again)
+				/* re-evaluate timers because one of
+				   the DeferEvents may have added a
+				   new timeout */
+				continue;
+
+#ifdef HAVE_THREADED_EVENT_LOOP
 			busy = false;
 		}
 #endif
 
-		if (again)
-			/* re-evaluate timers because one of the
-			   DeferEvents may have added a new timeout */
-			continue;
-
 		/* wait for new event */
 
 		Wait(timeout);