anchor.diff:  	    case get_elem_ackid(server, Id, ToTag, TransactionList#transactionstatelist.list) of
   		none ->
   		    logger:log(debug, "Transaction state list: ACK request does not match any existing transaction"),
  +		    %% If this ever happens, this extra debug output will probably be crucial to
  +		    %% diagnose why.
  +		    logger:log(debug, "Transaction state list: Extra debug: Looked for server transaction with id ~p AND to-tag ~p in list :~n~p", [Id, ToTag, debugfriendly(TransactionList)]),
   		    none;
   		Res when record(Res, transactionstate) ->
   		    Res
  
positive.code: 
  %% ACK requests are matched to transactions differently if they are not received from
  %% an RFC3261 compliant device, see RFC3261 17.2.3   
  get_server_transaction_ack_2543(Request, TransactionList) when record(Request, request) ->
      case sipheader:get_server_transaction_ack_id_2543(Request) of
  	error ->
  	    logger:log(error, "Transaction state list: Could not get server transaction RFC2543 ACK id for request"),
  
negative.code: get_elem_ackid(Type, AckId, ToTag, [H | T]) when record(H, transactionstate),
  H#transactionstate.type == Type, H#transactionstate.ack_id == AckId ->
      logger:log(debug, "Transaction state list: Found a transaction with matching ACK-Id, but the to-tag is not ~p (it is ~p) :~n~p",
  	       [ToTag, H#transactionstate.response_to_tag, debugfriendly(H)]),
      get_elem_ackid(Type, AckId, ToTag, T);
  get_elem_ackid(Type, AckId, ToTag, [H | T]) when record(H, transactionstate),
  H#transactionstate.type == Type, H#transactionstate.ack_id == AckId; H#transactionstate.response_to_tag == ToTag ->
      logger:log(debug, "Transaction state list: Found a transaction with matching ack-id OR matching to-tag~n(ack-id: ~p~n to-tag: ~p)~n~p",
  	       [AckId, ToTag, debugfriendly(H)]),
      get_elem_ackid(Type, AckId, ToTag, T);
  get_elem_ackid(Type, AckId, ToTag, [H | T]) when record(H, transactionstate) ->
      get_elem_ackid(Type, AckId, ToTag, T).
  