--- app_dial.c 2012-06-23 01:35:16.000000000 +0400 +++ app_dial.c 2012-08-21 11:01:17.881720487 +0400 @@ -2999,6 +2999,9 @@ } else { chan->hangupcause = peer->hangupcause; } + } else { + if (!ast_check_hangup(chan)) + chan->hangupcause = peer->hangupcause; } ast_hangup(peer); }