diff --git a/channel.c b/channel.c index e321a36738..e573e855eb 100644 --- a/channel.c +++ b/channel.c @@ -3055,7 +3055,6 @@ int ast_do_masquerade(struct ast_channel *original) if (ast_test_flag(clone, AST_FLAG_ZOMBIE)) { ast_log(LOG_DEBUG, "Destroying channel clone '%s'\n", clone->name); ast_mutex_unlock(&clone->lock); - ast_channel_free(clone); manager_event(EVENT_FLAG_CALL, "Hangup", "Channel: %s\r\n" "Uniqueid: %s\r\n" @@ -3066,6 +3065,7 @@ int ast_do_masquerade(struct ast_channel *original) clone->hangupcause, ast_cause2str(clone->hangupcause) ); + ast_channel_free(clone); } else { struct ast_frame null_frame = { AST_FRAME_NULL, }; ast_log(LOG_DEBUG, "Released clone lock on '%s'\n", clone->name);