diff --git a/src/scheduler.c b/src/scheduler.c
index a53ca523bd312a18881d3c809e462a82978bf720..4ae16f236589331d2041b1c7b9d3d0efa4131d50 100644
--- a/src/scheduler.c
+++ b/src/scheduler.c
@@ -758,10 +758,8 @@ struct task *scheduler_gettask ( struct scheduler *s , int qid ) {
                 for ( k = 0 ; k < nr_queues ; k++ )
                     if ( s->queues[k].count > 0 )
                         qids[ count++ ] = k;
-                if ( count > 1 ) {
-                    if ( ( res = queue_gettask( &s->queues[ qids[ rand() % count ] ] , qid , 0 ) ) != NULL )
-                        break;
-                    }
+                if ( count > 0 && ( res = queue_gettask( &s->queues[ qids[ rand() % count ] ] , qid , 0 ) ) != NULL )
+                    break;
                 }
                 
             }