diff --git a/src/plugins/select/cons_res/select_cons_res.c b/src/plugins/select/cons_res/select_cons_res.c
index d794ee4cdf5766e21b8356015fe240a198fd95cb..e9408abda216cf92fe766c6cd9f70eb30ed6ccf6 100644
--- a/src/plugins/select/cons_res/select_cons_res.c
+++ b/src/plugins/select/cons_res/select_cons_res.c
@@ -2650,7 +2650,8 @@ bitstr_t *_sequential_pick(bitstr_t *avail_bitmap, uint32_t node_cnt,
 			total_core_cnt += core_cnt[i];
 	}
 
-	debug2("Reservations requires %d cores", total_core_cnt);
+	debug2("Reservations requires %d cores (%u each on %d nodes, plus %u)",
+	       total_core_cnt, cores_per_node, node_cnt, extra_cores_needed);
 
 	sp_avail_bitmap = bit_alloc(bit_size(avail_bitmap));
 	bit_fmt(str, (sizeof(str) - 1), avail_bitmap);
@@ -2722,8 +2723,9 @@ bitstr_t *_sequential_pick(bitstr_t *avail_bitmap, uint32_t node_cnt,
 					cores_in_node++;
 					if (cores_in_node > cores_per_node)
 						extra_cores_needed--;
-					if ((extra_cores_needed == 0) ||
-					    (total_core_cnt == 0))
+					if ((total_core_cnt == 0) ||
+					    ((extra_cores_needed == 0) &&
+					     (cores_in_node >= cores_per_node)))
 						break;
 				}
 			}