anchor.diff:  	    Decode =
   		fun ({RecIP,RecPort,Answer})
   		      when RecIP =:= IP, RecPort =:= Port ->
  -			case decode_answer(Answer, Id, Verbose) of
  +			case decode_answer(Answer, Msg, Verbose) of
   			    {error,badid} ->
   				false;
   			    Reply ->
  
positive.code: 			inet:timeout( (Tm * (1 bsl I)) div Retry, Timer),
  		     case
                           query_udp(
                             S, Id, Buffer, IP, Port, UdpTimeout, Verbose)
                       of
  			 {ok,#dns_rec{header=H}} when H#dns_header.tc ->
  			     TcpTimeout = inet:timeout(Tm*5, Timer),
  			     {S,
                                query_tcp(
                                  TcpTimeout, Id, Buffer, IP, Port, Verbose)};
  			{error, econnrefused} = Err ->
                              ok = udp_close(S),
  	                    {#sock{}, Err};
  
negative.code:   #q{options =
           #options{
              udp_payload_size = PSz}=Options,
       edns = EDNSQuery}=Q,
    [NsSpec|NSs], Timer, Retry, I, S_0, Reason, RetryNSs) ->
      %%
      {IP,Port} = NS = servfail_retry_wait(NsSpec),
      {S,Result} =
  	query_ns(
            S_0, EDNSQuery, IP, Port, Timer, Retry, I, Options, PSz),
      case Result of
  	{error,{E,_}}
            when E =:= qfmterror;
  