Index: libcfa/src/concurrency/alarm.cfa
===================================================================
--- libcfa/src/concurrency/alarm.cfa	(revision cad1df1c5c6716ea5353ed0525e054a0af384519)
+++ libcfa/src/concurrency/alarm.cfa	(revision 4aeaee5867ab53014192716f19cf50aeefad944e)
@@ -60,6 +60,5 @@
 	type = Kernel;
 }
-void ?{}( alarm_node_t & this, $thread * thrd, Time alarm, Duration period, Alarm_Callback callback ) with( this ) {
-	this.thrd = thrd;
+void ?{}( alarm_node_t & this, Alarm_Callback callback, Time alarm, Duration period ) with( this ) {
 	this.alarm = alarm;
 	this.period = period;
Index: libcfa/src/concurrency/alarm.hfa
===================================================================
--- libcfa/src/concurrency/alarm.hfa	(revision cad1df1c5c6716ea5353ed0525e054a0af384519)
+++ libcfa/src/concurrency/alarm.hfa	(revision 4aeaee5867ab53014192716f19cf50aeefad944e)
@@ -52,9 +52,8 @@
 
 	union {
-		$thread * thrd;	// thrd who created event
-		processor * proc;		// proc who created event
+		$thread * thrd;					// thrd who created event
+		processor * proc;				// proc who created event
+		Alarm_Callback callback;		// callback to handle event
 	};
-
-	Alarm_Callback callback;
 
 	bool set		:1;		// whether or not the alarm has be registered
@@ -65,5 +64,5 @@
 void ?{}( alarm_node_t & this, $thread * thrd, Time alarm, Duration period );
 void ?{}( alarm_node_t & this, processor   * proc, Time alarm, Duration period );
-void ?{}( alarm_node_t & this, $thread * thrd, Time alarm, Duration period, Alarm_Callback callback );
+void ?{}( alarm_node_t & this, Alarm_Callback callback, Time alarm, Duration period );
 void ^?{}( alarm_node_t & this );
 
Index: libcfa/src/concurrency/locks.cfa
===================================================================
--- libcfa/src/concurrency/locks.cfa	(revision cad1df1c5c6716ea5353ed0525e054a0af384519)
+++ libcfa/src/concurrency/locks.cfa	(revision 4aeaee5867ab53014192716f19cf50aeefad944e)
@@ -207,6 +207,6 @@
 	void ^?{}( condition_variable(L) & this ){ }
 
-	void ?{}( alarm_node_wrap(L) & this, $thread * thrd, Time alarm, Duration period, Alarm_Callback callback ) {
-		this.alarm_node{ thrd, alarm, period, callback };
+	void ?{}( alarm_node_wrap(L) & this, Time alarm, Duration period, Alarm_Callback callback ) {
+		this.alarm_node{ callback, alarm, period };
 	}
 
@@ -277,5 +277,5 @@
 		lock( lock __cfaabi_dbg_ctx2 );
 		size_t recursion_count = queue_and_get_recursion(this, &info);
-		alarm_node_wrap(L) node_wrap = { info.t, t, 0`s, alarm_node_wrap_cast };
+		alarm_node_wrap(L) node_wrap = { t, 0`s, alarm_node_wrap_cast };
 		node_wrap.cond = &this;
 		node_wrap.i = &info;
Index: libcfa/src/concurrency/locks.hfa
===================================================================
--- libcfa/src/concurrency/locks.hfa	(revision cad1df1c5c6716ea5353ed0525e054a0af384519)
+++ libcfa/src/concurrency/locks.hfa	(revision 4aeaee5867ab53014192716f19cf50aeefad944e)
@@ -164,5 +164,5 @@
 	};
 
-	void ?{}( alarm_node_wrap(L) & this, $thread * thrd, Time alarm, Duration period, Alarm_Callback callback );
+	void ?{}( alarm_node_wrap(L) & this, Time alarm, Duration period, Alarm_Callback callback );
 	void ^?{}( alarm_node_wrap(L) & this );
 
