diff --git a/src/plugins/mpi/pmi2/spawn.c b/src/plugins/mpi/pmi2/spawn.c
index 8600760c10e18bd6fb71e831908aa368b7a9bff2..98b1194c88f70535cce6da734d7561680d7391b0 100644
--- a/src/plugins/mpi/pmi2/spawn.c
+++ b/src/plugins/mpi/pmi2/spawn.c
@@ -557,8 +557,10 @@ _exec_srun_multiple(spawn_req_t *req, char **env)
 		xstrcat(buf, "\n");
 		ntasks += subcmd->max_procs;
 	}
-	safe_write(fd, buf, strlen(buf));
-	xfree(buf);
+	if (buf) {
+		safe_write(fd, buf, strlen(buf));
+		xfree(buf);
+	}
 	close(fd);
 
 	argc = 7;