diff --git a/rts/sm/NonMovingSweep.c b/rts/sm/NonMovingSweep.c
index b39095961233e1bfe41629dee9a4dedd7696c669..ffc4ec42cebea7dc4b24a92f1001fc17c624702a 100644
--- a/rts/sm/NonMovingSweep.c
+++ b/rts/sm/NonMovingSweep.c
@@ -280,7 +280,7 @@ void nonmovingSweepMutLists()
     for (uint32_t n = 0; n < n_capabilities; n++) {
         Capability *cap = capabilities[n];
         bdescr *old_mut_list = cap->mut_lists[oldest_gen->no];
-        cap->mut_lists[oldest_gen->no] = allocBlockOnNode_sync(cap->node);
+        cap->mut_lists[oldest_gen->no] = allocBlockOnNode_lock(cap->node);
         for (bdescr *bd = old_mut_list; bd; bd = bd->link) {
             for (StgPtr p = bd->start; p < bd->free; p++) {
                 StgClosure **q = (StgClosure**)p;