Index: libcfa/src/bits/locks.hfa
===================================================================
--- libcfa/src/bits/locks.hfa	(revision 70f8bcd278959b80503cde34455ced51d1ae9394)
+++ libcfa/src/bits/locks.hfa	(revision a7aea7d762e94109be8ad28e8cd35350fc5c528c)
@@ -345,6 +345,12 @@
 
 		// Mark the future as abandoned, meaning it will be deleted by the server
-		void abandon( future_t & this ) {
+		bool abandon( future_t & this ) {
+			/* paranoid */ verify( this.ptr != 3p );
+
+			// Mark the future as abandonned
 			struct oneshot * got = __atomic_exchange_n( &this.ptr, 3p, __ATOMIC_SEQ_CST);
+
+			// If the future isn't already fulfilled, let the server delete it
+			if( got == 0p ) return false;
 
 			// got == 2p: the future is ready but the context hasn't fully been consumed
@@ -352,8 +358,11 @@
 			if( got == 2p ) {
 				while( this.ptr != 1p ) Pause();
-			}
-
+				got = 1p;
+			}
+
+			// The future is completed delete it now
+			/* paranoid */ verify( this.ptr != 1p );
 			free( &this );
-			return;
+			return true;
 		}
 
