Index: main/channel.c =================================================================== --- main/channel.c (revision 228265) +++ main/channel.c (working copy) @@ -2965,6 +2965,8 @@ if ((dup = ast_frisolate(new_frame))) { AST_LIST_NEXT(dup, frame_list) = AST_LIST_NEXT(cur, frame_list); ast_frfree(new_frame); + AST_LIST_NEXT(cur, frame_list) = NULL; + /* This frees an entire list of frames, which is why we must NULL the next pointer */ ast_frfree(cur); cur = dup; } @@ -3038,6 +3040,7 @@ chan->fout = FRAMECOUNT_INC(chan->fout); } } + AST_LIST_NEXT(cur, frame_list) = NULL; ast_frfree(cur); }