Index: libcfa/src/concurrency/preemption.cfa
===================================================================
--- libcfa/src/concurrency/preemption.cfa	(revision 8fd0ce3a53c91778c47f771c6d6596f8c33886da)
+++ libcfa/src/concurrency/preemption.cfa	(revision 4b30e8ccaaf654cc01c74faafd80728628e173c5)
@@ -105,9 +105,13 @@
 
 		// Check if this is a kernel
-		if( node->kernel_alarm ) {
+		if( node->type == Kernel ) {
 			preempt( node->proc );
 		}
+		else if( node->type == User ) {
+			timeout( id, node->thrd );
+		}
 		else {
-			timeout( id, node->thrd );
+			bool unpark_thd = node->callback(*node);
+			if (unpark_thd) timeout( id, node->thrd );
 		}
 
