diff --git a/doc/man/man1/srun.1 b/doc/man/man1/srun.1
index ec947aa0281ace351bd95b679d6173a15705b0b7..c578654068a903c1aecc8bd4f3257e721e3a473c 100644
--- a/doc/man/man1/srun.1
+++ b/doc/man/man1/srun.1
@@ -1,10 +1,10 @@
-.TH "srun" "1" "SLURM 2.4" "October 2011" "SLURM Commands"
+.TH "srun" "1" "SLURM 2.5" "July 2012" "SLURM Commands"
 
 .SH "NAME"
 srun \- Run parallel jobs
 
 .SH "SYNOPSIS"
-\fBsrun\fR            [\fIOPTIONS\fR...]  \fIexecutable \fR[\fIargs\fR...]
+\fBsrun\fR [\fIOPTIONS\fR...]  \fIexecutable \fR[\fIargs\fR...]
 
 .SH "DESCRIPTION"
 Run a parallel job on cluster managed by SLURM.  If necessary, srun will
@@ -1839,6 +1839,13 @@ The value will be set component types listed in \fBSLURM_TOPOLOGY_ADDR\fR.
 Each component will be identified as either "switch" or "node".
 A period is used to separate each hardware component type.
 
+.TP
+\fBSRUN_DEBUG\fR
+Set to the logging level of the \fBsrun\fR command.
+Default value is 3 (info level).
+The value is incremented or decremented based upon the \-\-verbose and
+\-\-quiet options.
+
 .TP
 \fBMPIRUN_NOALLOCATE\fR
 Do not allocate a block on Blue Gene systems only.
diff --git a/src/srun/srun.c b/src/srun/srun.c
index d5ddb08f386e9888b5873f14f666a2a5a5efe45a..6dac1300ee712bf68f2e8aa3649f8f4e005c82ea 100644
--- a/src/srun/srun.c
+++ b/src/srun/srun.c
@@ -592,25 +592,33 @@ _print_job_information(resource_allocation_response_msg_t *resp)
 	xfree(str);
 }
 
-/* Set SLURM_UMASK environment variable with current state */
+/* Set some environment variables with current state */
 static int _set_umask_env(void)
 {
-	char mask_char[5];
-	mode_t mask;
+	if (!getenv("SRUN_DEBUG")) {	/* do not change current value */
+		/* NOTE: Default debug level is 3 (info) */
+		int log_level = LOG_LEVEL_INFO + _verbose - opt.quiet;
 
-	if (getenv("SLURM_UMASK"))	/* use this value */
-		return SLURM_SUCCESS;
+		if (setenvf(NULL, "SRUN_DEBUG", "%d", log_level) < 0)
+			error ("unable to set SRUN_DEBUG in environment");
+	}
+
+	if (!getenv("SLURM_UMASK")) {	/* do not change current value */
+		char mask_char[5];
+		mode_t mask;
 
-	mask = (int)umask(0);
-	umask(mask);
+		mask = (int)umask(0);
+		umask(mask);
 
-	sprintf(mask_char, "0%d%d%d",
-		((mask>>6)&07), ((mask>>3)&07), mask&07);
-	if (setenvf(NULL, "SLURM_UMASK", "%s", mask_char) < 0) {
-		error ("unable to set SLURM_UMASK in environment");
-		return SLURM_FAILURE;
+		sprintf(mask_char, "0%d%d%d",
+			((mask>>6)&07), ((mask>>3)&07), mask&07);
+		if (setenvf(NULL, "SLURM_UMASK", "%s", mask_char) < 0) {
+			error ("unable to set SLURM_UMASK in environment");
+			return SLURM_FAILURE;
+		}
+		debug ("propagating UMASK=%s", mask_char);
 	}
-	debug ("propagating UMASK=%s", mask_char);
+
 	return SLURM_SUCCESS;
 }