diff --git a/src/plugins/select/bluegene/ba_bgq/block_allocator.c b/src/plugins/select/bluegene/ba_bgq/block_allocator.c
index 9bab9c8aac71e1f19199ea23e7f2ffbaf8f11abc..e466d971c6306b146909c348f1669f9e9b42725b 100644
--- a/src/plugins/select/bluegene/ba_bgq/block_allocator.c
+++ b/src/plugins/select/bluegene/ba_bgq/block_allocator.c
@@ -846,16 +846,18 @@ extern char *set_bg_block(List results, select_ba_request_t* ba_request)
 		   small block allocations.
 		*/
 		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_MESH)
+			      || (ba_request->conn_type[dim] == SELECT_NAV))
+			     && ((ba_geo_table->geometry[dim] == 1)
+				 || (ba_geo_table->geometry[dim]
+				     == DIM_SIZE[dim]))) {
 				/* On a Q all single midplane blocks
-				 * must be a TORUS. */
-				ba_request->conn_type[dim] = SELECT_TORUS;
-			} else if ((ba_request->conn_type[dim] == SELECT_MESH)
-				   && (ba_geo_table->geometry[dim]
-				       == DIM_SIZE[dim])) {
-				/* Might as well make it a torus since
-				   we are using all the nodes. */
+				 * must be a TORUS.
+				 *
+				 * Also if we are using all midplanes
+				 * in a dimension might as well make
+				 * it a torus.
+				 */
 				ba_request->conn_type[dim] = SELECT_TORUS;
 			} else if (ba_request->conn_type[dim] == SELECT_NAV) {
 				/* Set everything else to the default */