diff --git a/src/queue.c b/src/queue.c
index f1845b3a2c5c835409ff4479f86291b47624fbf2..f14db6a569132a6cc50134a05bb29a1f04bdff05 100644
--- a/src/queue.c
+++ b/src/queue.c
@@ -343,7 +343,8 @@ struct task *queue_gettask_new ( struct queue *q , int rid , int blocking , int
             score_best = score;
             
             /* Should we bother looking any farther? */
-            if ( score_best == 2 )
+            if ( ( qtasks[ qtid[ ind_best ] ].cj == NULL && score_best == 1 ) ||
+                score_best == 2 );
                 break;
         
             } /* loop over the task IDs. */
diff --git a/src/queue.h b/src/queue.h
index 5c872e9940b33c49f6f5beb5ff60f4ee27592580..e8fc4930eed87a3c4b2f62846ae46c1ea536a8d8 100644
--- a/src/queue.h
+++ b/src/queue.h
@@ -18,6 +18,10 @@
  ******************************************************************************/
 
 
+/* Some constants. */
+#define queue_maxhits            10
+
+
 /* The queue timers themselves. */
 enum {
     queue_timer_none = 0,
diff --git a/src/runner.c b/src/runner.c
index daaf68ea844edd301384aaa2110b357354806143..f224eef17b8dc452020645c8df0fb41d06b7c393 100644
--- a/src/runner.c
+++ b/src/runner.c
@@ -1079,7 +1079,7 @@ void *runner_main ( void *data ) {
             TIMER_TIC
             t = NULL;
             if ( r->nr_queues == 1 ) {
-                t = queue_gettask_new( &r->queues[0] , rt->id , 1 , 0 );
+                t = queue_gettask( &r->queues[0] , 1 , 0 );
                 }
             else if ( r->policy & runner_policy_steal ) {
                 if ( ( myq->next == myq->count ) ||
diff --git a/src/runner.h b/src/runner.h
index 1549fe7e16c642e8111311388b0a0d9e0ffae52d..c06a24aca83d9591e1e45546bab652f448321854 100644
--- a/src/runner.h
+++ b/src/runner.h
@@ -37,9 +37,6 @@ enum {
     runner_timer_dopair,
     runner_timer_dosub,
     runner_timer_getpair,
-    runner_timer_queue,
-    runner_timer_tree,
-    runner_timer_bubble,
     runner_timer_steal,
     runner_timer_stalled,
     runner_timer_count,