diff --git a/src/mod/event_handlers/mod_erlang_event/handle_msg.c b/src/mod/event_handlers/mod_erlang_event/handle_msg.c index 8461579a60..ca472efa66 100644 --- a/src/mod/event_handlers/mod_erlang_event/handle_msg.c +++ b/src/mod/event_handlers/mod_erlang_event/handle_msg.c @@ -1224,7 +1224,7 @@ static switch_status_t handle_ref_tuple(listener_t *listener, erlang_msg * msg, for (iter = switch_core_hash_first(listener->sessions); iter; iter = switch_core_hash_next(&iter)) { switch_core_hash_this(iter, &key, NULL, &val); se = (session_elem_t*)val; - if (se->spawn_reply && !strncmp(se->spawn_reply->hash, hash, 100)) { + if (switch_test_flag(se, LFLAG_WAITING_FOR_PID) && se->spawn_reply && !strncmp(se->spawn_reply->hash, hash, 100)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "found matching session for %s : %s\n", hash, se->uuid_str); diff --git a/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c b/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c index 28575f0b8e..d9b73a4e8c 100644 --- a/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c +++ b/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c @@ -1583,7 +1583,6 @@ session_elem_t *attach_call_to_spawned_process(listener_t *listener, char *modul session_element->process.type = ERLANG_PID; memcpy(&session_element->process.pid, p->pid, sizeof(erlang_pid)); - session_element->spawn_reply = NULL; switch_clear_flag_locked(session_element, LFLAG_WAITING_FOR_PID);