--- main/rtp_engine.c (Asterisk 13.38.3) +++ main/rtp_engine.c (working copy) @@ -721,8 +721,11 @@ void ast_rtp_codecs_payloads_copy(struct ast_rtp_codecs *src, struct ast_rtp_codecs *dest, struct ast_rtp_instance *instance) { int i; + ast_rtp_codecs_payloads_destroy(dest); + ast_rtp_codecs_payloads_initialize(dest); + ast_rwlock_wrlock(&dest->codecs_lock); /* Deadlock avoidance because of held write lock. */ while (ast_rwlock_tryrdlock(&src->codecs_lock)) {