diff -urN asterisk-1.4.17.orig/main/channel.c asterisk-1.4.17/main/channel.c --- asterisk-1.4.17.orig/main/channel.c 2007-12-27 14:40:02.000000000 -0700 +++ asterisk-1.4.17/main/channel.c 2008-02-03 20:19:38.000000000 -0700 @@ -2496,6 +2496,8 @@ f = &chan->dtmff; f->frametype = AST_FRAME_DTMF_END; f->subclass = chan->emulate_dtmf_digit; + ast_clear_flag(chan, AST_FLAG_EMULATE_DTMF); + chan->emulate_dtmf_digit = 0; f->len = ast_tvdiff_ms(now, chan->dtmf_tv); chan->dtmf_tv = now; ast_log(LOG_DTMF, "DTMF end emulation of '%c' queued on %s\n", f->subclass, chan->name);