diff --git a/res/stasis/control.c b/res/stasis/control.c
index 05f2fd318a6d19bd06ec6652239a15b27a8f4bbe..4e2490d8b739816479a52ee4c08166e959f90866 100644
--- a/res/stasis/control.c
+++ b/res/stasis/control.c
@@ -525,16 +525,21 @@ int stasis_app_control_move(struct stasis_app_control *control, const char *app_
 	struct stasis_app_control_move_data *move_data;
 	size_t size;
 
-	size = sizeof(*move_data) + strlen(app_name) + strlen(app_args) + 2;
+	size = sizeof(*move_data) + strlen(app_name) + 1;
+	if (app_args) {
+		/* Application arguments are optional */
+		size += strlen(app_args) + 1;
+	}
+
 	if (!(move_data = ast_calloc(1, size))) {
 		return -1;
 	}
 
 	move_data->app_name = (char *)move_data + sizeof(*move_data);
-	move_data->app_args = move_data->app_name + strlen(app_name) + 1;
-
 	strcpy(move_data->app_name, app_name); /* Safe */
+
 	if (app_args) {
+		move_data->app_args = move_data->app_name + strlen(app_name) + 1;
 		strcpy(move_data->app_args, app_args); /* Safe */
 	} else {
 		move_data->app_args = NULL;