diff --git a/NEWS b/NEWS
index 6d038ae832304b140af2d43351baf714a6f9b989..893b7bf06a5512bfbffcfeb2b60d499823fb8302 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,7 @@ documents those changes that are of interest to users and admins.
  -- Set "CFLAGS=-DISO8601" before configuration to get ISO8601 format 
     times for all SLURM commands. NOTE: This may break Moab, Maui, and/or 
     LSF schedulers.
+ -- Fix for srun -n and -O options when paired with -b.
 
 * Changes in SLURM 1.1.0-pre8
 =============================
diff --git a/src/srun/allocate.c b/src/srun/allocate.c
index ba19b0a5bbcbdc98a8368c937c1ea34f32c010df..e8b84da1ada23078a15827bced0d51f4584891d4 100644
--- a/src/srun/allocate.c
+++ b/src/srun/allocate.c
@@ -492,6 +492,7 @@ job_desc_msg_create_from_opts (char *script)
 		j->host = NULL;
 
 	if (script) {
+		char *buf = NULL;
 		/*
 		 * If script is set then we are building a request for
 		 *  a batch job
@@ -500,6 +501,8 @@ job_desc_msg_create_from_opts (char *script)
 
 		if (opt.overcommit)
 			putenv("SLURM_OVERCOMMIT=1");
+		xstrfmtcat(buf, "SLURM_NPROCS=%d", opt.nprocs);
+		putenv(buf);
 
 		j->environment = environ;
 		j->env_size = envcount (environ);