diff --git a/rts/Capability.c b/rts/Capability.c
index 05f4794befefbf1408c62d7f18d26144627099bb..c8e15c178d565e634591db8a86d5d4e2cd1729e1 100644
--- a/rts/Capability.c
+++ b/rts/Capability.c
@@ -495,7 +495,7 @@ giveCapabilityToTask (Capability *cap USED_IF_DEBUG, Task *task)
     ASSERT_LOCK_HELD(&cap->lock);
     ASSERT(task->cap == cap);
     debugTrace(DEBUG_sched, "passing capability %d to %s %#" FMT_HexWord64,
-               cap->no, task->incall->tso ? "bound task" : "worker",
+               cap->no, task->incall && task->incall->tso ? "bound task" : "worker",
                serialisableTaskId(task));
     ACQUIRE_LOCK(&task->lock);
     if (task->wakeup == false) {