anchor.diff:  
   reset(Msg, Dict, Es)
     when is_list(Es) ->
  -    {E3, E5, Fs} = partition(Es),
  -    FailedAVP = failed_avp(Msg, lists:reverse(Fs), Dict),
  +    {E3, E5, Failed} = partition(Es),
  +    FailedAVP = failed_avp(Msg, Failed, Dict),
       reset(set(Msg, FailedAVP, Dict),
             Dict,
             choose(is_answer_message(Msg, Dict), E3, E5));
  
positive.code:     end;
  
  %% ... or record.
  fa(Rec, FailedAvp, Dict) ->
      try
          {'Failed-AVP', [FailedAvp]}
      catch
          error: _ ->
  
negative.code: failed_avp(_, [] = No, _) ->
      No;
  
  failed_avp(Rec, Avps, Dict) ->
      [failed(Rec, [{'AVP', lists:reverse(Avps)}], Dict)].
  
  %% Reply as name and tuple list ...
  failed([MsgName | Values], FailedAvp, Dict) ->
      RecName = Dict:msg2rec(MsgName),
      try
          Dict:'#info-'(RecName, {index, 'Failed-AVP'}),
          {'Failed-AVP', [FailedAvp]}
      catch
          error: _ ->
  