diff --git a/src/plugins/select/bluegene/bg_job_place.c b/src/plugins/select/bluegene/bg_job_place.c
index af42c5562155de258c47f7ce3e7b09077753cfdf..bc816ae6fcce302174a45ac050aee4bb937c3655 100644
--- a/src/plugins/select/bluegene/bg_job_place.c
+++ b/src/plugins/select/bluegene/bg_job_place.c
@@ -377,7 +377,9 @@ static bg_record_t *_find_matching_block(List block_list,
 			   this by since we will usually be given a
 			   larger block than our allocation request.
 			*/
-			if (!bg_conf->sub_blocks || bg_record->mp_count > 1) {
+			if ((bg_record->cpu_cnt < request->procs)
+			    || !bg_conf->sub_blocks
+			    || (bg_record->mp_count > 1)) {
 				/* We use the proccessor count per block here
 				   mostly to see if we can run on a
 				   smaller block.