diff --git a/main/manager.c b/main/manager.c
index f6501c5e07eb6e5ee3ce95fb8039286ba8122b6a..e9a997086cdc480cc9e0d3d15ea5a5e6f7b4821d 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -3126,7 +3126,7 @@ static int action_command(struct mansession *s, const struct message *m)
 	const char *id = astman_get_header(m, "ActionID");
 	char *buf, *final_buf;
 	char template[] = "/tmp/ast-ami-XXXXXX";	/* template for temporary file */
-	int fd = mkstemp(template);
+	int fd;
 	off_t l;
 
 	if (ast_strlen_zero(cmd)) {
@@ -3139,6 +3139,8 @@ static int action_command(struct mansession *s, const struct message *m)
 		return 0;
 	}
 
+	fd = mkstemp(template);
+
 	astman_append(s, "Response: Follows\r\nPrivilege: Command\r\n");
 	if (!ast_strlen_zero(id)) {
 		astman_append(s, "ActionID: %s\r\n", id);