anchor.diff:  %%--------------------------------------------------------------------
   recv(Socket, Length) ->
       recv(Socket, Length, infinity).
  -recv(#sslsocket{pid = Pid}, Length, Timeout) when is_pid(Pid) ->
  +recv(#sslsocket{pid = Pid}, Length, Timeout) when is_pid(Pid),
  +						  (is_integer(Timeout) andalso Timeout > 0) or (Timeout == infinity)->
       ssl_connection:recv(Pid, Length, Timeout);
   recv(#sslsocket{pid = {Listen,
   		       #config{transport_info = {Transport, _, _, _}}}}, _,_) when is_port(Listen)->
  
positive.code: ssl_accept(ListenSocket) ->
      ssl_accept(ListenSocket, infinity).
  
  ssl_accept(#sslsocket{} = Socket, Timeout) ->
      ssl_connection:handshake(Socket, Timeout);
      
  ssl_accept(ListenSocket, SslOptions)  when is_port(ListenSocket) -> 
      ssl_accept(ListenSocket, SslOptions, infinity).
  
  ssl_accept(#sslsocket{} = Socket, [], Timeout) ->
      ssl_accept(#sslsocket{} = Socket, Timeout);
  ssl_accept(#sslsocket{fd = {_, _, _, Tracker}} = Socket, SslOpts0, Timeout) ->
      try 
  	{ok, EmOpts, InheritedSslOpts} = ssl_socket:get_all_opts(Tracker),	
  	SslOpts = handle_options(SslOpts0, InheritedSslOpts),
  
negative.code: 				   #config{transport_info =  {Transport,_,_, _} =CbInfo,
  					   connection_cb = ConnectionCb,
  					   ssl = SslOpts,
  					   emulated = Tracker}}}, Timeout) when (is_integer(Timeout) andalso Timeout > 0) or (Timeout == infinity) ->   
      case Transport:accept(ListenSocket, Timeout) of
  	{ok, Socket} ->
  	    {ok, EmOpts} = ssl_socket:get_emulated_opts(Tracker),
  