diff --git a/src/plugins/select/bluegene/ba_bgq/block_allocator.c b/src/plugins/select/bluegene/ba_bgq/block_allocator.c
index 08a3bed7460a92b13b5973b1dbc7a10c03730a89..49b1eae6ac176bb553ee5d58c61777795bc25457 100644
--- a/src/plugins/select/bluegene/ba_bgq/block_allocator.c
+++ b/src/plugins/select/bluegene/ba_bgq/block_allocator.c
@@ -383,6 +383,12 @@ extern void print_ba_request(select_ba_request_t* ba_request)
 
 extern ba_mp_t *coord2ba_mp(const uint16_t *coord)
 {
+	if ((coord[A] >= DIM_SIZE[A]) || (coord[X] >= DIM_SIZE[X]) ||
+	    (coord[Y] >= DIM_SIZE[Y]) || (coord[Z] >= DIM_SIZE[Z])) {
+		error("Invalid coordinate %d:%d:%d:%d",
+		      coord[A], coord[X], coord[Y], coord[Z]);
+		return NULL;
+	}
 	return &ba_main_grid[coord[A]][coord[X]][coord[Y]][coord[Z]];
 }