diff --git a/rts/RaiseAsync.c b/rts/RaiseAsync.c
index 2f072d551a75cbfb87ee172ac0ccc5d56b01c485..a31562224db8c19f0ebb958b41f2f17bbb0f0945 100644
--- a/rts/RaiseAsync.c
+++ b/rts/RaiseAsync.c
@@ -672,16 +672,7 @@ removeFromQueues(Capability *cap, StgTSO *tso)
   }
 
  done:
-  tso->_link = END_TSO_QUEUE; // no write barrier reqd
-  tso->why_blocked = NotBlocked;
-  tso->block_info.closure = NULL;
-  appendToRunQueue(cap,tso);
-
-  // We might have just migrated this TSO to our Capability:
-  if (tso->bound) {
-      tso->bound->cap = cap;
-  }
-  tso->cap = cap;
+  unblockOne(cap, tso);
 }
 
 /* -----------------------------------------------------------------------------