diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c
index a0b64741ff32fcc9fbfd63bb60d6b1bddd67aba7..560bb179b8aadfa1397682950d3441de571fd18e 100644
--- a/src/slurmctld/proc_req.c
+++ b/src/slurmctld/proc_req.c
@@ -1716,8 +1716,9 @@ static void _slurm_rpc_submit_batch_job(slurm_msg_t * msg)
 		}
 
 		lock_slurmctld(job_write_lock);
-		error_code = job_allocate(job_desc_msg, false, false,
-					  false, uid, &job_ptr);
+		error_code = job_allocate(job_desc_msg, 
+				job_desc_msg->immediate, false,
+				false, uid, &job_ptr);
 		unlock_slurmctld(job_write_lock);
 		END_TIMER;
 	}
diff --git a/src/srun/srun.c b/src/srun/srun.c
index 39258f193d0f1b7887c22ca49754e15bf65d43d6..07b541dfd50ab632b0f2cca45712fa0a8400a3a3 100644
--- a/src/srun/srun.c
+++ b/src/srun/srun.c
@@ -478,8 +478,16 @@ _run_batch_job(void)
 		else
 			info ("jobid %u.%u submitted",resp->job_id,
 							resp->step_id);
-		if (resp->error_code)
-			info("Warning: %s", slurm_strerror(resp->error_code));
+		if (resp->error_code) {
+			if (opt.immediate) {
+				error("Job failed: %s", 
+					slurm_strerror(resp->error_code));
+				rc = resp->error_code;
+			} else {
+				info("Warning: %s", 
+					slurm_strerror(resp->error_code));
+			}
+		}
 		slurm_free_submit_response_response_msg (resp);
 	}