diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c
index df3faf0d852ed3a3bb1d54118d7d1053c2b5dc49..57279dc2b60200af7229becdf98729806fd53054 100644
--- a/src/slurmctld/node_scheduler.c
+++ b/src/slurmctld/node_scheduler.c
@@ -765,8 +765,11 @@ _pick_best_nodes(struct node_set *node_set_ptr, int node_set_size,
 							max_nodes, req_cpus, 
 							contiguous);
 				if (pick_code == SLURM_SUCCESS) {
-					runable_avail = true;
 					runable_ever  = true;
+					if ((node_lim == INFINITE) ||
+					    (bit_set_count(avail_bitmap) <=
+					     node_lim))
+						runable_avail = true;
 				}
 			}
 			if (!runable_ever) {