diff --git a/src/plugins/select/bluegene/plugin/select_bluegene.c b/src/plugins/select/bluegene/plugin/select_bluegene.c
index 3f5638b3fc6c58b87789e094eafd324698214593..dd3bd6d0af158797a6ae659cdd7d6dc77bf3a703 100644
--- a/src/plugins/select/bluegene/plugin/select_bluegene.c
+++ b/src/plugins/select/bluegene/plugin/select_bluegene.c
@@ -383,37 +383,23 @@ extern int select_p_alter_node_cnt(enum select_node_cnt type, void *data)
 				found_record = bg_record;
 			list_iterator_destroy(itr);
 		}
-		if(!found_record|| 
+		if(!found_record || 
 		   (found_record->cpus_per_bp == procs_per_node))
 			(*nodes) = bluegene_bp_node_cnt;
 		else
 			(*nodes) = found_record->node_cnt;		
 		break;
 	case SELECT_APPLY_NODE_MIN_OFFSET:
-		if(bg_list) {
-			itr = list_iterator_create(bg_list);
-			bg_record = (bg_record_t *)list_next(itr);
-			list_iterator_destroy(itr);
+		if((*nodes) == 1) {
+			/* Job will actually get more than one c-node, 
+			 * but we can't be sure exactly how much so we 
+			 * don't scale up this value. */
+			break;
 		}
-		if(!bg_record || 
-		   (bg_record->cpus_per_bp == procs_per_node)) 
-			(*nodes) *= bluegene_bp_node_cnt;
-		else 
-			(*nodes) *= bg_record->node_cnt;		
+		(*nodes) *= bluegene_bp_node_cnt;
 		break;
 	case SELECT_APPLY_NODE_MAX_OFFSET:
-		if(bg_list) {
-			itr = list_iterator_create(bg_list);
-			while ((bg_record = (bg_record_t *) 
-				list_next(itr)) != NULL) 
-				found_record = bg_record;
-			list_iterator_destroy(itr);
-		}
-		if(!found_record || 
-		   (found_record->cpus_per_bp == procs_per_node))
-			(*nodes) *= bluegene_bp_node_cnt;
-		else
-			(*nodes) *= found_record->node_cnt;		
+		(*nodes) *= bluegene_bp_node_cnt;
 		break;
 	case SELECT_SET_NODE_CNT:
 		select_g_get_jobinfo(job_desc->select_jobinfo,
diff --git a/src/slurmctld/partition_mgr.c b/src/slurmctld/partition_mgr.c
index a306e62e9dec412237ae21da3346337a06e02c3b..56fd226ca7d440ff24c70d0747b758422b40ba93 100644
--- a/src/slurmctld/partition_mgr.c
+++ b/src/slurmctld/partition_mgr.c
@@ -711,8 +711,8 @@ void pack_part(struct part_record *part_ptr, Buf buffer)
 				&altered);
 	pack32((uint32_t)altered, buffer);
 	altered = part_ptr->min_nodes;
-	/* select_g_alter_node_cnt(SELECT_APPLY_NODE_MIN_OFFSET,  */
-/* 				&altered); */
+	select_g_alter_node_cnt(SELECT_APPLY_NODE_MIN_OFFSET,
+ 				&altered); 
 	pack32((uint32_t)altered, buffer);
 	altered = part_ptr->total_nodes;
 	select_g_alter_node_cnt(SELECT_APPLY_NODE_MAX_OFFSET,