Index: main/channel.c =================================================================== --- a/main/channel.c (revision 351448) +++ b/main/channel.c (working copy) @@ -3503,6 +3503,16 @@ c->timingfunc = func; c->timingdata = data; + if (func == NULL && rate == 0 && c->fdno == AST_TIMING_FD) { + /* Clearing the timing func and setting the rate to 0 + * means that we don't want to be reading from the timingfd + * any more. Setting c->fdno to -1 means we won't have any + * errant reads from the timingfd, meaning we won't potentially + * miss any important frames. + */ + c->fdno = -1; + } + ast_channel_unlock(c); return res;