--- ../asterisk-1.8.5-clean/main/channel.c 2011-06-30 10:48:47.000000000 +0200 +++ main/channel.c 2011-06-30 07:28:37.000000000 +0200 @@ -4870,6 +4870,10 @@ apply_plc(chan, fr); } + if ((!(fr->subclass.codec & chan->nativeformats)) && (chan->writeformat != fr->subclass.codec)) { + ast_set_write_format(chan, fr->subclass.codec); + } + /* If the frame is in the raw write format, then it's easy... just use the frame - otherwise we will have to translate */ if (fr->subclass.codec == chan->rawwriteformat) f = fr;