Index: main/channel.c =================================================================== --- main/channel.c (revision 280737) +++ main/channel.c (working copy) @@ -4163,7 +4163,7 @@ if (res) { ast_log(LOG_WARNING, "Hangup failed! Strange things may happen!\n"); ast_channel_unlock(clone); - return -1; + goto done; } snprintf(zombn, sizeof(zombn), "%s", orig); @@ -4249,7 +4249,7 @@ ast_log(LOG_WARNING, "Channel for type '%s' could not fixup channel %s\n", original->tech->type, original->name); ast_channel_unlock(clone); - return -1; + goto done; } } else ast_log(LOG_WARNING, "Channel type '%s' does not have a fixup routine (for %s)! Bad things may happen.\n", @@ -4298,6 +4298,10 @@ pthread_kill(original->blocker, SIGURG); if (option_debug) ast_log(LOG_DEBUG, "Done Masquerading %s (%d)\n", original->name, original->_state); +done: + ast_indicate(original, AST_CONTROL_SRCCHANGE); + ast_indicate(clone, AST_CONTROL_SRCCHANGE); + return 0; }