diff --git a/src/common/env.c b/src/common/env.c
index e4041efe9de6f2ffde964a1bf74a1087966ac622..d68f533d2e7c0e13643267229c8d13f435563405 100644
--- a/src/common/env.c
+++ b/src/common/env.c
@@ -275,13 +275,21 @@ int setup_env(env_t *env)
 	if(env->select_jobinfo) {
 		select_g_get_jobinfo(env->select_jobinfo, 
 				     SELECT_DATA_PART_ID, &bgl_part_id);
-		if (bgl_part_id 
-		    && setenvf(&env->env, 
-			       "MPIRUN_PARTITION", "%s", bgl_part_id)) {
+		if (bgl_part_id) {
+			if(setenvf(&env->env, 
+				   "MPIRUN_PARTITION", "%s", bgl_part_id))
+				rc = SLURM_FAILURE;
+			
+			if(setenvf(&env->env, "MPIRUN_NOFREE", "%d", 1))
+				rc = SLURM_FAILURE;
+			if(setenvf(&env->env, "MPIRUN_NOALLOCATE", "%d", 1))
+				rc = SLURM_FAILURE;
+		} else 
+			rc = SLURM_FAILURE;
+		
+		if(rc == SLURM_FAILURE)
 			error("Can't set MPIRUN_PARTITION "
 			      "environment variable");
-			rc = SLURM_FAILURE;
-		}
 		xfree(bgl_part_id);
 	}