--- channels/chan_sip.c.orig 2011-02-08 21:05:13.000000000 +0100 +++ channels/chan_sip.c 2011-04-29 12:09:06.000000000 +0200 @@ -10742,7 +10742,9 @@ ast_copy_flags(&p->flags[0], &user->flags[0], SIP_FLAGS_TO_COPY); ast_copy_flags(&p->flags[1], &user->flags[1], SIP_PAGE2_FLAGS_TO_COPY); if (sipmethod == SIP_INVITE) { - /* copy channel vars */ + /* destroy old channel vars and copy new channel vars */ + ast_variables_destroy(p->chanvars); + p->chanvars = NULL; for (v = user->chanvars ; v ; v = v->next) { if ((tmpvar = ast_variable_new(v->name, v->value))) { tmpvar->next = p->chanvars; @@ -10902,7 +10904,9 @@ ast_string_field_set(p, authname, peer->name); if (sipmethod == SIP_INVITE) { - /* copy channel vars */ + /* destroy old channel vars and copy new channel vars */ + ast_variables_destroy(p->chanvars); + p->chanvars = NULL; for (v = peer->chanvars ; v ; v = v->next) { if ((tmpvar = ast_variable_new(v->name, v->value))) { tmpvar->next = p->chanvars;