diff -urN asterisk.orig/main/channel.c asterisk/main/channel.c --- asterisk.orig/main/channel.c 2008-02-02 14:44:04.000000000 -0800 +++ asterisk/main/channel.c 2008-02-02 14:44:29.000000000 -0800 @@ -2437,6 +2437,8 @@ f->subclass = chan->emulate_dtmf_digit; f->len = ast_tvdiff_ms(now, chan->dtmf_tv); chan->dtmf_tv = now; + ast_clear_flag(chan, AST_FLAG_EMULATE_DTMF); + chan->emulate_dtmf_digit = 0; if (chan->audiohooks) { struct ast_frame *old_frame = f; f = ast_audiohook_write_list(chan, chan->audiohooks, AST_AUDIOHOOK_DIRECTION_READ, f);