diff --git a/maestro/fifo.c b/maestro/fifo.c
index 2d0a40a3a2370d40687623de34ba7f561cbc416e..16b23ed02662337d98da96abe665cb9abc1c50c5 100644
--- a/maestro/fifo.c
+++ b/maestro/fifo.c
@@ -185,9 +185,9 @@ mstro_fifo_enqueue(mstro_fifo f, void* obj)
 
   kdq_push(uintptr_t, f->q, (uintptr_t)obj);
 
-  s= pthread_cond_broadcast(&f->cvar);
+  s= pthread_cond_signal(&f->cvar);
   if(s!=0) {
-    ERR("Failed to broadcast on fifo %p: %d (%s)\n", f, s, strerror(s));
+    ERR("Failed to signal on fifo %p: %d (%s)\n", f, s, strerror(s));
     stat=MSTRO_FAIL;
   }
   s = pthread_mutex_unlock(&f->lock);