Index: libcfa/src/concurrency/kernel/startup.cfa
===================================================================
--- libcfa/src/concurrency/kernel/startup.cfa	(revision e58e423bd2a4a3fc8416ab0f70ad09323cbaebed)
+++ libcfa/src/concurrency/kernel/startup.cfa	(revision 7dd98b68d7ec01e98367d0c51e04e35ebd35f9f4)
@@ -100,4 +100,5 @@
 // Other Forward Declarations
 extern void __wake_proc(processor *);
+extern int cfa_main_returned;							// from interpose.cfa
 
 //-----------------------------------------------------------------------------
@@ -268,4 +269,5 @@
 
 static void __kernel_shutdown(void) {
+	if(!cfa_main_returned) return;
 	/* paranoid */ verify( __preemption_enabled() );
 	disable_interrupts();
Index: libcfa/src/heap.cfa
===================================================================
--- libcfa/src/heap.cfa	(revision e58e423bd2a4a3fc8416ab0f70ad09323cbaebed)
+++ libcfa/src/heap.cfa	(revision 7dd98b68d7ec01e98367d0c51e04e35ebd35f9f4)
@@ -102,5 +102,5 @@
 } // prtUnfreed
 
-extern int cfa_main_returned;							// from bootloader.cf
+extern int cfa_main_returned;							// from interpose.cfa
 extern "C" {
 	void heapAppStart() {								// called by __cfaabi_appready_startup
Index: libcfa/src/interpose.cfa
===================================================================
--- libcfa/src/interpose.cfa	(revision e58e423bd2a4a3fc8416ab0f70ad09323cbaebed)
+++ libcfa/src/interpose.cfa	(revision 7dd98b68d7ec01e98367d0c51e04e35ebd35f9f4)
@@ -94,7 +94,10 @@
 } __cabi_libc;
 
+int cfa_main_returned;
+
 extern "C" {
 	void __cfaabi_interpose_startup( void ) {
 		const char *version = 0p;
+		cfa_main_returned = 0;
 
 		preload_libgcc();
@@ -313,4 +316,5 @@
 
 void sigHandler_term( __CFA_SIGPARMS__ ) {
+	write( STDERR_FILENO, "Handler Term\n", sizeof("Handler Term\n") - 1 );
 	abort( true, "Application interrupted by signal: %s.\n", strsignal( sig ) );
 }
