diff --git a/src/mod/event_handlers/mod_event_socket/mod_event_socket.c b/src/mod/event_handlers/mod_event_socket/mod_event_socket.c
index a7b62dfd63..c377080e63 100644
--- a/src/mod/event_handlers/mod_event_socket/mod_event_socket.c
+++ b/src/mod/event_handlers/mod_event_socket/mod_event_socket.c
@@ -2101,6 +2101,10 @@ static switch_status_t parse_command(listener_t *listener, switch_event_t **even
 	if (!strncasecmp(cmd, "sendevent", 9)) {
 		char *ename;
 		const char *uuid = NULL;
+		char uuid_str[SWITCH_UUID_FORMATTED_LENGTH + 1];
+		switch_uuid_str(uuid_str, sizeof(uuid_str));
+		
+		switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, "Event-UUID", uuid_str);
 
 		strip_cr(cmd);
 
@@ -2128,6 +2132,7 @@ static switch_status_t parse_command(listener_t *listener, switch_event_t **even
 
 		if ((uuid = switch_event_get_header(*event, "unique-id"))) {
 			switch_core_session_t *dsession;
+
 			if ((dsession = switch_core_session_locate(uuid))) {
 				switch_core_session_queue_event(dsession, event);
 				switch_core_session_rwunlock(dsession);
@@ -2137,7 +2142,7 @@ static switch_status_t parse_command(listener_t *listener, switch_event_t **even
 		if (*event) {
 			switch_event_fire(event);
 		}
-		switch_snprintf(reply, reply_len, "+OK");
+		switch_snprintf(reply, reply_len, "+OK %s", uuid_str);
 		goto done;
 	} else if (!strncasecmp(cmd, "api ", 4)) {
 		struct api_command_struct acs = { 0 };
diff --git a/src/switch_core_session.c b/src/switch_core_session.c
index c45e62a4f9..66c39f7056 100644
--- a/src/switch_core_session.c
+++ b/src/switch_core_session.c
@@ -2221,10 +2221,19 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_exec(switch_core_session_t *
 	const char *var;
 	switch_channel_t *channel = switch_core_session_get_channel(session);
 	char *expanded = NULL;
-	const char *app;
+	const char *app, *app_uuid_var;
 	switch_core_session_message_t msg = { 0 };
 	char delim = ',';
 	int scope = 0;
+	char uuid_str[SWITCH_UUID_FORMATTED_LENGTH + 1];
+	char *app_uuid = uuid_str;
+	
+	if ((app_uuid_var = switch_channel_get_variable(channel, "app_uuid"))) {
+		app_uuid = (char *)app_uuid_var;
+		switch_channel_set_variable(channel, "app_uuid", NULL);
+	} else {
+		switch_uuid_str(uuid_str, sizeof(uuid_str));
+	}
 
 	switch_assert(application_interface);
 
@@ -2304,6 +2313,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_exec(switch_core_session_t *
 		switch_channel_event_set_data(session->channel, event);
 		switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application", application_interface->interface_name);
 		switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-Data", expanded);
+		switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-UUID", app_uuid);
 		switch_event_fire(&event);
 	}
 
@@ -2327,6 +2337,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_exec(switch_core_session_t *
 		switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application", application_interface->interface_name);
 		switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-Data", expanded);
 		switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-Response", resp ? resp : "_none_");
+		switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Application-UUID", app_uuid);
 		switch_event_fire(&event);
 	}
 
diff --git a/src/switch_ivr.c b/src/switch_ivr.c
index cac064b544..fb3852a353 100644
--- a/src/switch_ivr.c
+++ b/src/switch_ivr.c
@@ -530,6 +530,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se
 
 	if (cmd_hash == CMD_EXECUTE) {
 		char *app_name = switch_event_get_header(event, "execute-app-name");
+		char *event_uuid = switch_event_get_header(event, "event-uuid");
 		char *app_arg = switch_event_get_header(event, "execute-app-arg");
 		char *content_type = switch_event_get_header(event, "content-type");
 		char *loop_h = switch_event_get_header(event, "loops");
@@ -598,6 +599,12 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se
 				switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "%s Command Execute %s(%s)\n",
 								  switch_channel_get_name(channel), app_name, switch_str_nil(app_arg));
 				b4 = switch_micro_time_now();
+
+				if (event_uuid) {
+					switch_channel_set_variable(channel, "app_uuid", event_uuid);
+				}
+
+
 				if (switch_core_session_execute_application(session, app_name, app_arg) != SWITCH_STATUS_SUCCESS) {
 					if (!inner || switch_channel_test_flag(channel, CF_STOP_BROADCAST)) switch_channel_clear_flag(channel, CF_BROADCAST);
 					goto done;