diff --git a/src/common/env.c b/src/common/env.c
index 0f7d237e379fdcaa7f6c3d5cd1046b2181297ed6..82b39611bf1ff6412663481a95759bea9be3387f 100644
--- a/src/common/env.c
+++ b/src/common/env.c
@@ -1603,6 +1603,29 @@ void env_array_merge(char ***dest_array, const char **src_array)
 	xfree(value);
 }
 
+/*
+ * Merge the environment variables in src_array beginning with "SLURM" into the
+ * array dest_array.  Any variables already found in dest_array will be
+ * overwritten with the value from src_array.
+ */
+void env_array_merge_slurm(char ***dest_array, const char **src_array)
+{
+	char **ptr;
+	char name[256], *value;
+
+	if (src_array == NULL)
+		return;
+
+	value = xmalloc(ENV_BUFSIZE);
+	for (ptr = (char **)src_array; *ptr != NULL; ptr++) {
+		if (_env_array_entry_splitter(*ptr, name, sizeof(name),
+					      value, ENV_BUFSIZE) &&
+		    (strncmp(name, "SLURM", 5) == 0))
+			env_array_overwrite(dest_array, name, value);
+	}
+	xfree(value);
+}
+
 /*
  * Strip out trailing carriage returns and newlines
  */
diff --git a/src/common/env.h b/src/common/env.h
index b20ee9d247775144bd20d158a45b0f752e9ece69..879ad18d3733a394c13896c7ed40ca71c35fc834 100644
--- a/src/common/env.h
+++ b/src/common/env.h
@@ -194,6 +194,13 @@ void env_unset_environment(void);
  */
 void env_array_merge(char ***dest_array, const char **src_array);
 
+/*
+ * Merge the environment variables in src_array beginning with "SLURM" into the
+ * array dest_array.  Any variables already found in dest_array will be
+ * overwritten with the value from src_array.
+ */
+void env_array_merge_slurm(char ***dest_array, const char **src_array);
+
 /*
  * Copy env_array must be freed by env_array_free
  */
diff --git a/src/sbatch/sbatch.c b/src/sbatch/sbatch.c
index cbe7a3c069b1464af88c8f73fd387fe007c015ce..f22f7677792197cffb93c448ba7db54d83a0fdf6 100644
--- a/src/sbatch/sbatch.c
+++ b/src/sbatch/sbatch.c
@@ -465,6 +465,8 @@ static int _fill_job_desc_from_opts(job_desc_msg_t *desc)
 		env_array_merge(&desc->environment, (const char **)environ);
 	} else if (!strcasecmp(opt.export_env, "NONE")) {
 		desc->environment = env_array_create();
+		env_array_merge_slurm(&desc->environment,
+				      (const char **)environ);
 		opt.get_user_env_time = 0;
 	} else {
 		_env_merge_filter(desc);