anchor.diff:      S = Data#eldap.fd,
       Id = bump_id(Data),
       log2(Data, "modify DN request = ~p~n", [Req]),
  -    Resp = request(S, Id, {modDNRequest, Req}),
  +    Resp = request(Data#eldap.socketmodule, S, Id, {modDNRequest, Req}),
       log2(Data, "modify DN reply = ~p~n", [Resp]),    
       check_reply(Data#eldap{id = Id}, Resp, modDNResponse).
   
  
positive.code: 
  parse_args([{port, Port}|T], Cpid, Data) when integer(Port) ->
      parse_args(T, Cpid, Data#eldap{port = Port});
  parse_args([{log, F}|T], Cpid, Data) when function(F) ->
      parse_args(T, Cpid, Data#eldap{log = F});
  parse_args([{log, _}|T], Cpid, Data) ->
  
negative.code: %%% Send an LDAP request and receive the answer
  %%% --------------------------------------------------------------------
  
  request(SocketModule, S, ID, Request) ->
      send_request(SocketModule, S, ID, Request),
      recv_response(SocketModule, S).
  
  send_request(SocketModule, S, ID, Request) ->
      Message = #'LDAPMessage'{messageID  = ID,
  			     protocolOp = Request},
      {ok,Bytes} = asn1rt:encode('LDAPv3', 'LDAPMessage', Message),
      SocketModule:send(S, Bytes).
  
  recv_response(SocketModule, S) ->
      case SocketModule:recv(S, 0) of
  	{ok, Data} ->
  	    check_tag(Data),
  	    case asn1rt:decode('LDAPv3', 'LDAPMessage', Data) of
  