diff --git a/src/sem.c b/src/sem.c
index 87cfe021743c53ea45388e7f111dabee889cec9e..402aae85ebb313a1efd3b0f790891f3187587836 100644
--- a/src/sem.c
+++ b/src/sem.c
@@ -38,6 +38,7 @@ void sem_down(sem_t *sem)
         current_ctx->status = CTX_WAIT;
         current_ctx->sem_next_ctx = sem->first_ctx;
         sem->first_ctx = current_ctx;
+        irq_enable();
         yield();
     }
     irq_enable();