anchor.diff:  	    {error, {unknown_operation, Operation}}
       end.
   
  +findListValue(Key, KeyVals) ->
  +    case lists:keyfind(Key, 1, KeyVals) of
  +        {Key, List} ->
  +            List;
  +        false ->
  +            []
  +    end.
   %%%
   %%% returns {ok, Header, Body} | {error, Error}
   %%%
  
positive.code:     call_attach(Wsdl, Operation, Port, Service, Headers, Message, [], []).
  
  %%% --------------------------------------------------------------------
  %%% Make a SOAP request (with http headers)
  %%% --------------------------------------------------------------------
  call(Wsdl, Operation, Port, Service, Headers, Message, http_headers, HttpHeaders) ->
      call_attach(Wsdl, Operation, Port, Service, Headers, Message, [], HttpHeaders).
  
  
  %%% --------------------------------------------------------------------
  
negative.code: %%% --------------------------------------------------------------------
  %%% Make a SOAP request (with attachments)
  %%% --------------------------------------------------------------------
  call_attach(Wsdl, Operation, Port, Service, Headers, Message, Attachments, HttpHeaders) ->
      call_attach(Wsdl, Operation, Port, Service, Headers, Message, Attachments, http_details, [{headers, HttpHeaders}]).
  
  call_attach(#wsdl{operations = Operations, model = Model},
              Operation, Port, Service, Headers, Message, Attachments, http_details, HttpDetails) ->
      HttpHeaders = findListValue(headers, HttpDetails),
      HttpClientOptions = findListValue(client_options, HttpDetails),
      %% find the operation
      case findOperation(Operation, Port, Service, Operations) of
  	#operation{address = URL, action=Action, operation = Operation} ->
  