diff --git a/src/srun/srun.c b/src/srun/srun.c
index 4f032946318e204784bb27e182bc9b1b8f2fc058..d0bc724be74b111ce38ff741bb8ba0cd2594bc5a 100644
--- a/src/srun/srun.c
+++ b/src/srun/srun.c
@@ -726,8 +726,10 @@ static int _run_job_script (job_t *job, env_t *env)
 	pid_t cpid;
 	char **argv = (remote_argv[0] ? remote_argv : NULL);
 
-	env->nprocs = opt.nprocs;
-	env->cpus_per_task = opt.cpus_per_task;
+	if (opt.nprocs_set)
+		env->nprocs = opt.nprocs;
+	if (opt.cpus_set)
+		env->cpus_per_task = opt.cpus_per_task;
 	env->distribution = opt.distribution;
 	env->overcommit = opt.overcommit;
 	env->slurmd_debug = opt.slurmd_debug;