Index: libcfa/src/concurrency/coroutine.cfa
===================================================================
--- libcfa/src/concurrency/coroutine.cfa	(revision 27f2befd47811f0de1bc323785ba5da8367ff921)
+++ libcfa/src/concurrency/coroutine.cfa	(revision c34bb1f97a307c6584d454c750e314f5eb433522)
@@ -298,4 +298,23 @@
 }
 
+bool poll( coroutine$ * cor ) libcfa_public {
+    nonlocal_exception * nl_ex = pop_ehm_head( cor );
+
+    // if no exceptions return false
+    if ( nl_ex == 0p ) return false;
+    
+    // otherwise loop and throwResume all pending exceptions
+    while ( nl_ex != 0p ){
+        exception_t * ex = nl_ex->the_exception;
+        free( nl_ex );
+        throwResume *ex;
+        nl_ex = pop_ehm_head( cor );
+    }
+    
+    return true;
+}
+
+bool poll() libcfa_public { return poll( active_coroutine() ); }
+
 // user facing ehm operations
 forall(T & | is_coroutine(T)) {
@@ -305,21 +324,5 @@
 
     // poll for non-local exceptions
-    bool poll( T & cor ) libcfa_public {
-        coroutine$ * base_cor = get_coroutine( cor );
-        nonlocal_exception * nl_ex = pop_ehm_head( base_cor );
-
-        // if no exceptions return false
-        if ( nl_ex == 0p ) return false;
-        
-        // otherwise loop and throwResume all pending exceptions
-        while ( nl_ex != 0p ){
-            exception_t * ex = nl_ex->the_exception;
-            free( nl_ex );
-            throwResume *ex;
-            nl_ex = pop_ehm_head( base_cor );
-        }
-        
-        return true;
-    }
+    bool poll( T & cor ) libcfa_public { return poll( get_coroutine( cor ) ); }
 
     // poll iff nonlocal ehm is enabled
Index: libcfa/src/concurrency/coroutine.hfa
===================================================================
--- libcfa/src/concurrency/coroutine.hfa	(revision 27f2befd47811f0de1bc323785ba5da8367ff921)
+++ libcfa/src/concurrency/coroutine.hfa	(revision c34bb1f97a307c6584d454c750e314f5eb433522)
@@ -219,4 +219,7 @@
 
 // non local ehm and coroutine utility routines
+bool poll( coroutine$ * cor );
+bool poll();
+
 forall(T & | is_coroutine(T)) {
     void enable_ehm( T & cor );
Index: libcfa/src/concurrency/kernel/startup.cfa
===================================================================
--- libcfa/src/concurrency/kernel/startup.cfa	(revision 27f2befd47811f0de1bc323785ba5da8367ff921)
+++ libcfa/src/concurrency/kernel/startup.cfa	(revision c34bb1f97a307c6584d454c750e314f5eb433522)
@@ -487,4 +487,7 @@
 	last = 0p;
 	cancellation = 0p;
+    ehm_state.ehm_buffer{};
+    ehm_state.buffer_lock{};
+    ehm_state.ehm_enabled = false;
 }
 
