diff --git a/src/common/proc_args.c b/src/common/proc_args.c
index ed6d9de0307a5575d1d7d7e53a0db6351cdc74bd..cede1aed10257d6ea0ddd081a181e1fc16c8ac3e 100644
--- a/src/common/proc_args.c
+++ b/src/common/proc_args.c
@@ -624,12 +624,17 @@ search_path(char *cwd, char *cmd, bool check_current_dir, int access_mode)
 char *print_commandline(const int script_argc, char **script_argv)
 {
 	int i;
-	char buf[256];
+	char tmp[256], *out_buf = NULL, *prefix;
 
-	buf[0] = '\0';
-	for (i = 0; i < script_argc; i++)
-		snprintf(buf, 256,  "%s", script_argv[i]);
-	return xstrdup(buf);
+	for (i = 0; i < script_argc; i++) {
+		if (out_buf)
+			prefix = " ";
+		else
+			prefix = "";
+		snprintf(tmp, 256,  "%s%s", prefix, script_argv[i]);
+		xstrcat(out_buf, tmp);
+	}
+	return out_buf;
 }
 
 char *print_geometry(const uint16_t *geometry)