Index: kernel/generic/src/time/clock.c
===================================================================
--- kernel/generic/src/time/clock.c	(revision 1066041e4e1803c9b6506af8a869b03669a25957)
+++ kernel/generic/src/time/clock.c	(revision f0fcb040f13a5e81a4e704790bcd3b6fc4fe52cb)
@@ -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();
-			}
 		}
 	}
