diff --git a/src/scheduler.c b/src/scheduler.c
index 3a7cc27641fbf657a6c88c8c1136734691ebc6f1..af456bacf2ab7393c4825eea20736949163bc4ad 100644
--- a/src/scheduler.c
+++ b/src/scheduler.c
@@ -1134,12 +1134,12 @@ void scheduler_enqueue(struct scheduler *s, struct task *t) {
 
     /* If no previous owner, pick a random queue. */
     if (qid < 0) qid = rand() % s->nr_queues;
-
-    /* Insert the task into that queue. */
-    queue_insert(&s->queues[qid], t);
     
     /* Increase the waiting counter. */
     atomic_inc(&s->waiting);
+
+    /* Insert the task into that queue. */
+    queue_insert(&s->queues[qid], t);
   }
 }