diff --git a/src/plugins/select/bluegene/ba/block_allocator.c b/src/plugins/select/bluegene/ba/block_allocator.c
index 49711e4ed839eec0fd65147bb9d501b11ccf801a..41e2e19626fb6922eb7b15c5d3cf703f57534f8c 100644
--- a/src/plugins/select/bluegene/ba/block_allocator.c
+++ b/src/plugins/select/bluegene/ba/block_allocator.c
@@ -941,12 +941,15 @@ extern char *set_bg_block(List results, select_ba_request_t* ba_request)
 	/* This midplane should have already been checked if it was in
 	   use or not */
 	list_append(results, ba_node);
+
 	if (ba_request->conn_type[0] >= SELECT_SMALL) {
 		/* adding the ba_node and ending */
 		ba_node->used |= BA_MP_USED_TRUE;
 		name = xstrdup_printf("%s", ba_node->coord_str);
 		goto end_it;
-	}
+	} else if (ba_request->conn_type[0] == SELECT_NAV)
+		ba_request->conn_type[0] = bg_conf->default_conn_type[0];
+
 	found = _find_x_path(results, ba_node,
 			     ba_node->coord,
 			     ba_request->geometry[X],
diff --git a/src/plugins/select/bluegene/ba_bgq/block_allocator.c b/src/plugins/select/bluegene/ba_bgq/block_allocator.c
index 656bf135bb7161e81e5fb12b2b74b191a9fdf482..b6d0ccf41a750215c8c708ecb2b60985c8abd7cb 100644
--- a/src/plugins/select/bluegene/ba_bgq/block_allocator.c
+++ b/src/plugins/select/bluegene/ba_bgq/block_allocator.c
@@ -837,13 +837,21 @@ extern char *set_bg_block(List results, select_ba_request_t* ba_request)
 			ba_mp->used = BA_MP_USED_ALTERED;
 			list_append(main_mps, ba_mp);
 		}
-
 		/* If we are going to take up the entire dimension
 		   might as well force it to be TORUS.
 		*/
 		for (dim=0; dim<cluster_dims; dim++) {
-			if ((ba_request->conn_type[dim] == SELECT_MESH)
-			    && (ba_geo_table->geometry[dim] == 1))
+			if (ba_request->conn_type[dim] == SELECT_NAV) {
+				/* On a Q all single midplane blocks must be a
+				   TORUS. */
+				if (ba_request->size == 1)
+					ba_request->conn_type[dim] =
+						SELECT_TORUS;
+				else
+					ba_request->conn_type[dim] =
+						bg_conf->default_conn_type[dim];
+			} else if ((ba_request->conn_type[dim] == SELECT_MESH)
+				   && (ba_geo_table->geometry[dim] == 1))
 				ba_request->conn_type[dim] = SELECT_TORUS;
 			else if ((ba_request->conn_type[dim] == SELECT_MESH)
 				 && (ba_geo_table->geometry[dim]
diff --git a/src/plugins/select/bluegene/bg_dynamic_block.c b/src/plugins/select/bluegene/bg_dynamic_block.c
index 82c7372087541de77bb7c4400c601b750a8eca03..ff0fa9a20a819228456460a5023123f561e9c365 100644
--- a/src/plugins/select/bluegene/bg_dynamic_block.c
+++ b/src/plugins/select/bluegene/bg_dynamic_block.c
@@ -294,23 +294,6 @@ extern List create_dynamic_block(List block_list,
 			info("small block not able to be placed inside others");
 	}
 
-	if (request->conn_type[0] == SELECT_NAV) {
-#ifndef HAVE_BG_L_P
-		int dim;
-		for (dim = 0; dim < SYSTEM_DIMENSIONS; dim++) {
-			/* On a Q all single midplane blocks must be a
-			   TORUS. */
-			if (request->size == 1)
-				request->conn_type[dim] = SELECT_TORUS;
-			else
-				request->conn_type[dim] =
-					bg_conf->default_conn_type[dim];
-		}
-#else
-		request->conn_type[0] = bg_conf->default_conn_type[0];
-#endif
-	}
-
 	//debug("going to create %d", request->size);
 	if (!new_ba_request(request)) {
 		if (request->geometry[0] != (uint16_t)NO_VAL) {