diff --git a/src/engine.c b/src/engine.c
index 6c2a672fd7e57c36505bfd04a1d6febc2f0283a8..68a34cc25150bb2d5a71fa32750abe222fbea676 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -2590,7 +2590,7 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
             finger->sorted = 0;
           }
         }
-        if (!(ci->sorted & (1 << t->flags))) {
+        if (!(ci->sorted & (1 << t->flags)) || ci->nodeID != engine_rank) {
           atomic_or(&ci->sorts->flags, (1 << t->flags));
           scheduler_activate(s, ci->sorts);
           if (ci->nodeID == engine_rank) scheduler_activate(s, ci->drift_part);
@@ -2605,7 +2605,7 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
             finger->sorted = 0;
           }
         }
-        if (!(cj->sorted & (1 << t->flags))) {
+        if (!(cj->sorted & (1 << t->flags)) || cj->nodeID != engine_rank) {
           atomic_or(&cj->sorts->flags, (1 << t->flags));
           scheduler_activate(s, cj->sorts);
           if (cj->nodeID == engine_rank) scheduler_activate(s, cj->drift_part);