diff --git a/src/engine.c b/src/engine.c
index c75e4ebb16207e8063c10fdb0f3d4a3a26bcbb9f..317b64fc6d28a91dbb76568f8524b3babbd582bd 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -4505,7 +4505,7 @@ void engine_init(struct engine *e, struct space *s,
 
   /* Init the scheduler with enough tasks for the initial sorting tasks. */
   const int nr_tasks = 2 * s->tot_cells + 2 * e->nr_threads;
-  scheduler_init(&e->sched, e->s, nr_tasks, nr_queues, scheduler_flag_steal,
+  scheduler_init(&e->sched, e->s, nr_tasks, nr_queues, (policy & scheduler_flag_steal),
                  e->nodeID, &e->threadpool);
 
   /* Allocate and init the threads. */
diff --git a/src/scheduler.h b/src/scheduler.h
index cdb3a28f1a3482e934480b0c0ccd18f18b66d437..ac654580b2af2ffb506dc3fd9f0b988b89effbd0 100644
--- a/src/scheduler.h
+++ b/src/scheduler.h
@@ -52,7 +52,7 @@
 
 /* Flags . */
 #define scheduler_flag_none 0
-#define scheduler_flag_steal 1
+#define scheduler_flag_steal (1 << 1)
 
 /* Data of a scheduler. */
 struct scheduler {