diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c
index 3978d50b8c73238d7acf177f4ec40289f99efc51..b86c90a53f7075235e0746d68300b5d71ed8d8d2 100644
--- a/src/slurmctld/node_scheduler.c
+++ b/src/slurmctld/node_scheduler.c
@@ -534,7 +534,8 @@ _pick_best_nodes(struct node_set *node_set_ptr, int node_set_size,
 			total_nodes = bit_set_count(*req_bitmap);
 		if (req_cpus != 0)
 			total_cpus = count_cpus(*req_bitmap);
-		if (total_nodes > max_nodes) {
+		if ((max_nodes != 0) &&
+		    (total_nodes > max_nodes)) {
 			info("_pick_best_nodes: required nodes exceed limit");
 			return EINVAL;
 		}