diff --git a/NEWS b/NEWS
index 6e0736e7e59b4a627dc3e6ab8e88ff00b63a7346..9f186dc7784d31d7f46a83ca42dac3054dbf7fac 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,8 @@ documents those changes that are of interest to users and admins.
 
 * Changes in SLURM 2.3.0
 ============================
+ -- BLUEGENE - make sure we only set the jobinfo_select start_loc on a job
+    when we are on a small block, not a regular one.
 
 * Changes in SLURM 2.3.0.rc2
 ============================
diff --git a/src/plugins/select/bluegene/bg_job_info.c b/src/plugins/select/bluegene/bg_job_info.c
index ece4f121bd23107ffd2a2d7ff8b717fdc28b0c4c..698bc142746580de70f1c70b9bc6a62a5378d5ad 100644
--- a/src/plugins/select/bluegene/bg_job_info.c
+++ b/src/plugins/select/bluegene/bg_job_info.c
@@ -187,17 +187,17 @@ extern int set_select_jobinfo(select_jobinfo_t *jobinfo,
 		if (tmp_char) {
 #ifdef HAVE_BGQ
 			jobinfo->dim_cnt = 5;
+			for (i=0; i<jobinfo->dim_cnt; i++) {
+				jobinfo->start_loc[i] =
+					select_char2coord(tmp_char[i]);
+			}
 #else
 			jobinfo->dim_cnt = SYSTEM_DIMENSIONS;
 #endif
+			jobinfo->ionode_str = xstrdup(tmp_char);
 		} else
 			jobinfo->dim_cnt = SYSTEM_DIMENSIONS;
 
-		jobinfo->ionode_str = xstrdup(tmp_char);
-		for (i=0; i<jobinfo->dim_cnt; i++) {
-			jobinfo->start_loc[i] =
-				select_char2coord(jobinfo->ionode_str[i]);
-		}
 		break;
 	case SELECT_JOBDATA_NODE_CNT:
 		jobinfo->cnode_cnt = *uint32;