Index: kernel/generic/src/time/clock.c
===================================================================
--- kernel/generic/src/time/clock.c	(revision 1066041e4e1803c9b6506af8a869b03669a25957)
+++ kernel/generic/src/time/clock.c	(revision 0cf813dc09bece145ed9f4b78a0d8c970bdae6b6)
@@ -212,19 +212,15 @@
 		irq_spinlock_unlock(&THREAD->lock, false);
 		
-		if (ticks == 0) {
-			if (PREEMPTION_ENABLED) {
-				scheduler();
+		if (ticks == 0 && PREEMPTION_ENABLED) {
+			scheduler();
 #ifdef CONFIG_UDEBUG
-				/*
-				* Give udebug chance to stop the thread
-				* before it begins executing userspace code.
-				*/
-				istate_t *istate = THREAD->udebug.uspace_state;
-				if ((istate) && (istate_from_uspace(istate)))
-					udebug_before_thread_runs();
+			/*
+			 * Give udebug chance to stop the thread
+			 * before it begins executing userspace code.
+			 */
+			istate_t *istate = THREAD->udebug.uspace_state;
+			if ((istate) && (istate_from_uspace(istate)))
+				udebug_before_thread_runs();
 #endif
-			} else {
-				preemption_set_needed();
-			}
 		}
 	}
