Index: src/libcfa/concurrency/alarm.c
===================================================================
--- src/libcfa/concurrency/alarm.c	(revision e9a7e90bcf7f85996a4ac53fc5fab81096d04136)
+++ src/libcfa/concurrency/alarm.c	(revision b1a43005e87089482731ec24b33f9461080e8ceb)
@@ -37,4 +37,5 @@
 
 void __kernel_set_timer( Duration alarm ) {
+	verifyf(alarm >= 1`us || alarm == 0, "Setting timer to < 1us (%luns)", alarm.tv);
 	setitimer( ITIMER_REAL, &(itimerval){ alarm }, NULL );
 }
@@ -68,5 +69,6 @@
 }
 
-__cfaabi_dbg_debug_do( bool validate( alarm_list_t * this ) {
+#if !defined(NDEBUG) && (defined(__CFA_DEBUG__) || defined(__CFA_VERIFY__))
+bool validate( alarm_list_t * this ) {
 	alarm_node_t ** it = &this->head;
 	while( (*it) ) {
@@ -75,5 +77,6 @@
 
 	return it == this->tail;
-})
+}
+#endif
 
 static inline void insert_at( alarm_list_t * this, alarm_node_t * n, __alarm_it_t p ) {
Index: src/libcfa/concurrency/preemption.c
===================================================================
--- src/libcfa/concurrency/preemption.c	(revision e9a7e90bcf7f85996a4ac53fc5fab81096d04136)
+++ src/libcfa/concurrency/preemption.c	(revision b1a43005e87089482731ec24b33f9461080e8ceb)
@@ -91,4 +91,5 @@
 	//Loop throught every thing expired
 	while( node = get_expired( alarms, currtime ) ) {
+		// __cfaabi_dbg_print_buffer_decl( " KERNEL: preemption tick.\n" );
 
 		// Check if this is a kernel
@@ -103,4 +104,5 @@
 		Duration period = node->period;
 		if( period > 0 ) {
+			// __cfaabi_dbg_print_buffer_local( " KERNEL: alarm period is %lu.\n", period.tv );
 			node->alarm = currtime + period;    // Alarm is periodic, add currtime to it (used cached current time)
 			insert( alarms, node );             // Reinsert the node for the next time it triggers
@@ -112,5 +114,13 @@
 
 	// If there are still alarms pending, reset the timer
-	if( alarms->head ) { __kernel_set_timer( alarms->head->alarm - currtime ); }
+	if( alarms->head ) {
+		__cfaabi_dbg_print_buffer_decl( " KERNEL: @%lu(%lu) resetting alarm to %lu.\n", currtime.tv, __kernel_get_time().tv, (alarms->head->alarm - currtime).tv);
+		Duration delta = alarms->head->alarm - currtime;
+		Duration caped = max(delta, 50`us);
+		// itimerval tim  = { caped };
+		// __cfaabi_dbg_print_buffer_local( "    Values are %lu, %lu, %lu %lu.\n", delta.tv, caped.tv, tim.it_value.tv_sec, tim.it_value.tv_usec);
+
+		__kernel_set_timer( caped );
+	}
 }
 
@@ -335,5 +345,5 @@
 	if( !preemption_ready() ) { return; }
 
-	__cfaabi_dbg_print_buffer_decl( " KERNEL: preempting core %p (%p).\n", kernelTLS.this_processor, kernelTLS.this_thread );
+	__cfaabi_dbg_print_buffer_decl( " KERNEL: preempting core %p (%p @ %p).\n", kernelTLS.this_processor, kernelTLS.this_thread, (void *)(cxt->uc_mcontext.CFA_REG_IP) );
 
 	// Sync flag : prevent recursive calls to the signal handler
@@ -377,4 +387,5 @@
 				case EAGAIN :
 				case EINTR :
+					{__cfaabi_dbg_print_buffer_decl( " KERNEL: Spurious wakeup %d.\n", err );}
 					continue;
        			case EINVAL :
Index: src/libcfa/time
===================================================================
--- src/libcfa/time	(revision e9a7e90bcf7f85996a4ac53fc5fab81096d04136)
+++ src/libcfa/time	(revision b1a43005e87089482731ec24b33f9461080e8ceb)
@@ -1,10 +1,10 @@
-// 
+//
 // Cforall Version 1.0.0 Copyright (C) 2018 University of Waterloo
 //
 // The contents of this file are covered under the licence agreement in the
 // file "LICENCE" distributed with Cforall.
-// 
-// time -- 
-// 
+//
+// time --
+//
 // Author           : Peter A. Buhr
 // Created On       : Wed Mar 14 23:18:57 2018
@@ -12,5 +12,5 @@
 // Last Modified On : Sat Apr 14 17:48:23 2018
 // Update Count     : 636
-// 
+//
 
 #pragma once
@@ -91,4 +91,7 @@
 static inline int64_t ?`w( Duration dur ) { return dur.tv / (7LL * 24LL * 60LL * 60LL * TIMEGRAN); }
 
+static inline Duration max( Duration lhs, Duration rhs ) { return  (lhs.tv < rhs.tv) ? rhs : lhs;}
+static inline Duration min( Duration lhs, Duration rhs ) { return !(rhs.tv < lhs.tv) ? lhs : rhs;}
+
 
 //######################### C timeval #########################
