Index: libcfa/src/concurrency/coroutine.cfa
===================================================================
--- libcfa/src/concurrency/coroutine.cfa	(revision c8c0c7c5291339c09222f6f42efd7ecbcf3e63cb)
+++ libcfa/src/concurrency/coroutine.cfa	(revision 2cd949bdf646e348c3d82fdbc4bc3da895676621)
@@ -10,6 +10,6 @@
 // Created On       : Mon Nov 28 12:27:26 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Nov 30 09:59:36 2019
-// Update Count     : 14
+// Last Modified On : Thu Dec  5 14:37:29 2019
+// Update Count     : 15
 //
 
Index: libcfa/src/concurrency/invoke.h
===================================================================
--- libcfa/src/concurrency/invoke.h	(revision c8c0c7c5291339c09222f6f42efd7ecbcf3e63cb)
+++ libcfa/src/concurrency/invoke.h	(revision 2cd949bdf646e348c3d82fdbc4bc3da895676621)
@@ -10,6 +10,6 @@
 // Created On       : Tue Jan 17 12:27:26 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Dec  4 08:05:32 2019
-// Update Count     : 43
+// Last Modified On : Thu Dec  5 16:26:03 2019
+// Update Count     : 44
 //
 
@@ -51,5 +51,4 @@
 
 			struct {
-				void * stack;
 				volatile unsigned short disable_count;
 				volatile bool enabled;
Index: libcfa/src/concurrency/kernel.cfa
===================================================================
--- libcfa/src/concurrency/kernel.cfa	(revision c8c0c7c5291339c09222f6f42efd7ecbcf3e63cb)
+++ libcfa/src/concurrency/kernel.cfa	(revision 2cd949bdf646e348c3d82fdbc4bc3da895676621)
@@ -10,6 +10,6 @@
 // Created On       : Tue Jan 17 12:27:26 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Dec  3 21:46:54 2019
-// Update Count     : 49
+// Last Modified On : Thu Dec  5 16:25:52 2019
+// Update Count     : 52
 //
 
@@ -135,5 +135,5 @@
 	NULL,												// cannot use 0p
 	NULL,
-	{ NULL, 1, false, false },
+	{ 1, false, false },
 	6u //this should be seeded better but due to a bug calling rdtsc doesn't work
 };
@@ -453,17 +453,19 @@
 
 	size_t stacksize;
-	 // default stack size, normally defined by shell limit
+	// default stack size, normally defined by shell limit
 	Abort( pthread_attr_getstacksize( &attr, &stacksize ), "pthread_attr_getstacksize" );
 	assert( stacksize >= PTHREAD_STACK_MIN );
 
-#ifdef __CFA_DEBUG__
-	void * stack = memalign( __page_size, stacksize + __page_size );
-	// pthread has no mechanism to create the guard page in user supplied stack.
-	if ( mprotect( stack, __page_size, PROT_NONE ) == -1 ) {
-		abort( "mprotect : internal error, mprotect failure, error(%d) %s.", errno, strerror( errno ) );
-	} // if
-#else
-	void * stack = malloc( stacksize );
-#endif
+	void * stack;
+	__cfaabi_dbg_debug_do(
+		stack = memalign( __page_size, stacksize + __page_size );
+		// pthread has no mechanism to create the guard page in user supplied stack.
+		if ( mprotect( stack, __page_size, PROT_NONE ) == -1 ) {
+			abort( "mprotect : internal error, mprotect failure, error(%d) %s.", errno, strerror( errno ) );
+		} // if
+	);
+	__cfaabi_dbg_no_debug_do(
+		stack = malloc( stacksize );
+	);
 
 	Abort( pthread_attr_setstack( &attr, stack, stacksize ), "pthread_attr_setstack" ); 
Index: libcfa/src/concurrency/preemption.cfa
===================================================================
--- libcfa/src/concurrency/preemption.cfa	(revision c8c0c7c5291339c09222f6f42efd7ecbcf3e63cb)
+++ libcfa/src/concurrency/preemption.cfa	(revision 2cd949bdf646e348c3d82fdbc4bc3da895676621)
@@ -10,6 +10,6 @@
 // Created On       : Mon Jun 5 14:20:42 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Dec  1 22:22:56 2019
-// Update Count     : 41
+// Last Modified On : Thu Dec  5 16:34:05 2019
+// Update Count     : 43
 //
 
@@ -65,4 +65,5 @@
 event_kernel_t * event_kernel;                        // kernel public handle to even kernel
 static pthread_t alarm_thread;                        // pthread handle to alarm thread
+static void * alarm_stack;							  // pthread stack for alarm thread
 
 static void ?{}(event_kernel_t & this) with( this ) {
@@ -306,5 +307,5 @@
 	signal_block( SIGALRM );
 
-	kernelTLS.preemption_state.stack = create_pthread( &alarm_thread, alarm_loop, 0p );
+	alarm_stack = create_pthread( &alarm_thread, alarm_loop, 0p );
 }
 
@@ -326,5 +327,5 @@
 
 	pthread_join( alarm_thread, 0p );
-	free( kernelTLS.preemption_state.stack );
+	free( alarm_stack );
 
 	// Preemption is now fully stopped
Index: libcfa/src/heap.cfa
===================================================================
--- libcfa/src/heap.cfa	(revision c8c0c7c5291339c09222f6f42efd7ecbcf3e63cb)
+++ libcfa/src/heap.cfa	(revision 2cd949bdf646e348c3d82fdbc4bc3da895676621)
@@ -10,6 +10,6 @@
 // Created On       : Tue Dec 19 21:58:35 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Dec  3 13:58:44 2019
-// Update Count     : 642
+// Last Modified On : Wed Dec  4 21:42:46 2019
+// Update Count     : 646
 //
 
@@ -35,7 +35,5 @@
 static bool traceHeap = false;
 
-inline bool traceHeap() {
-	return traceHeap;
-} // traceHeap
+inline bool traceHeap() { return traceHeap; }
 
 bool traceHeapOn() {
@@ -50,4 +48,6 @@
 	return temp;
 } // traceHeapOff
+
+bool traceHeapTerm() { return false; }
 
 
@@ -694,8 +694,8 @@
 static void ^?{}( HeapManager & ) {
 	#ifdef __STATISTICS__
-	// if ( traceHeapTerm() ) {
-	// 	printStats();
-	// 	if ( prtfree() ) prtFree( heapManager, true );
-	// } // if
+	if ( traceHeapTerm() ) {
+		printStats();
+		// if ( prtfree() ) prtFree( heapManager, true );
+	} // if
 	#endif // __STATISTICS__
 } // ~HeapManager
