diff --git a/src/plugins/select/bluegene/ba_bgq/block_allocator.c b/src/plugins/select/bluegene/ba_bgq/block_allocator.c
index 077f3621f891cd6b9bb49586a9dc4eee684dfb67..73dad51f855a17b0ac4c58f7a72c3dd0b7ec113d 100644
--- a/src/plugins/select/bluegene/ba_bgq/block_allocator.c
+++ b/src/plugins/select/bluegene/ba_bgq/block_allocator.c
@@ -1584,10 +1584,13 @@ extern struct job_record *ba_remove_job_in_block_job_list(
 	xassert((ba_mp = list_peek(bg_record->ba_mp_list)));
 
 	if (!job_ptr) {
-		FREE_NULL_BITMAP(ba_mp->cnode_bitmap);
-		if (ba_mp->cnode_usable_bitmap)
+		if (ba_mp->cnode_usable_bitmap) {
+			FREE_NULL_BITMAP(ba_mp->cnode_bitmap);
 			ba_mp->cnode_bitmap =
 				bit_copy(ba_mp->cnode_usable_bitmap);
+		} else if (ba_mp->cnode_bitmap)
+			bit_nclear(ba_mp->cnode_bitmap, 0,
+				   bit_size(ba_mp->cnode_bitmap)-1);
 		return NULL;
 	}
 
diff --git a/src/plugins/select/bluegene/bg_record_functions.c b/src/plugins/select/bluegene/bg_record_functions.c
index 3aa9f2d683308f2465d49192d4c8b7b2265442c1..81f994e884131d7924ab1dda8a2e6c819b3470c0 100644
--- a/src/plugins/select/bluegene/bg_record_functions.c
+++ b/src/plugins/select/bluegene/bg_record_functions.c
@@ -1480,8 +1480,13 @@ extern int bg_reset_block(bg_record_t *bg_record, struct job_record *job_ptr)
 		while ((ba_mp = list_next(itr))) {
 			if (!ba_mp->used)
 				continue;
-			bit_nclear(ba_mp->cnode_bitmap, 0,
-				   bit_size(ba_mp->cnode_bitmap)-1);
+			if (ba_mp->cnode_usable_bitmap) {
+				FREE_NULL_BITMAP(ba_mp->cnode_bitmap);
+				ba_mp->cnode_bitmap =
+					bit_copy(ba_mp->cnode_usable_bitmap);
+			} else if (ba_mp->cnode_bitmap)
+				bit_nclear(ba_mp->cnode_bitmap, 0,
+					   bit_size(ba_mp->cnode_bitmap)-1);
 		}
 		list_iterator_destroy(itr);
 #endif