diff -urN asterisk-11.2.1/apps/app_dial.c ../../asterisk-11.2.1-adapted/work/asterisk-11.2.1/apps/app_dial.c --- asterisk-11.2.1/apps/app_dial.c 2012-11-07 20:03:42.000000000 +0100 +++ ../../asterisk-11.2.1-adapted/work/asterisk-11.2.1/apps/app_dial.c 2013-02-15 16:29:48.000000000 +0100 @@ -3094,7 +3094,7 @@ } ast_channel_early_bridge(chan, NULL); - hanguptree(&out_chans, NULL, ast_channel_hangupcause(chan)==AST_CAUSE_ANSWERED_ELSEWHERE ? 1 : 0 ); /* forward 'answered elsewhere' if we received it */ + hanguptree(&out_chans, NULL, ast_channel_hangupcause(chan)==AST_CAUSE_ANSWERED_ELSEWHERE || ast_test_flag64(&opts, OPT_CANCEL_ELSEWHERE) ? 1 : 0 ); /* forward 'answered elsewhere' if we received it */ pbx_builtin_setvar_helper(chan, "DIALSTATUS", pa.status); senddialendevent(chan, pa.status); ast_debug(1, "Exiting with DIALSTATUS=%s.\n", pa.status);