anchor.diff:  			application:start(ssl), 
   			%% Always seed 
   			ssl:seed("wheredoyouthinkitcanbefound"),
  -%%			 {ok, SslSocket} = ssl:connect(Host, Port, [{ssl_imp, new}, {active, false}, {verify, verify_none}]),
  -			 ssl:connect(Host, Port, [{verify, 0}, {active, false}]);
  +			%% new ssl implementation does not seem to work as of R13B01
  +			%%{ok, SslSocket} = ssl:connect(Host, Port, [{ssl_imp, new}, {active, false}, {verify, verify_none}]),
  +			ssl:connect(Host, Port, [{verify, 0}, {active, false}]);
   		_ -> 
   			gen_tcp:connect(Host, Port, [{active, false}])
   	end.
   
   
  -new_call(Socket, URI, Payload, KeepAlive, Timeout, ExtraHeader, SslOption) ->
  +call2(Socket, URI, Payload, KeepAlive, Timeout, ExtraHeader, Options) ->
   	?DEBUG_LOG({decoded_call, Payload}),
  -    case xmlrpc_encode:payload(Payload) of
  -	{ok, EncodedPayload} ->
  -	    ?DEBUG_LOG({encoded_call, EncodedPayload}),
  -	    case send(Socket, URI, KeepAlive, EncodedPayload, ExtraHeader, SslOption) of
  -		ok ->
  -		    case parse_response(Socket, Timeout, SslOption) of
  -			{ok, Header} ->
  -			    handle_payload(Socket, KeepAlive, Timeout, SslOption, Header);
  -			{error, Reason} when KeepAlive == false ->
  -				comm_close(SslOption, Socket),
  -			    {error, Reason};
  -			{error, Reason} -> {error, Socket, Reason}
  -		    end;
  +	case xmlrpc_encode:payload(Payload) of
  +		{ok, EncodedPayload} ->
  +			?DEBUG_LOG({encoded_call, EncodedPayload}),
  +			case send(Socket, URI, KeepAlive, EncodedPayload, ExtraHeader, Options) of
  +				ok ->
  +					case parse_response(Socket, Timeout, Options) of
  +						{ok, Header} ->
  +							handle_payload(Socket, KeepAlive, Timeout, Options, Header);
  +						{error, Reason} when KeepAlive == false ->
  +							comm_close(Options, Socket),
  +							{error, Reason};
  +						{error, Reason} -> {error, Socket, Reason}
  +					end;
  +				{error, Reason} when KeepAlive == false ->
  +					comm_close(Options, Socket),
  +					{error, Reason};
  +				{error, Reason} -> {error, Socket, Reason}
  +			end;
   		{error, Reason} when KeepAlive == false ->
  -				comm_close(SslOption, Socket),
  -		    {error, Reason};
  +			comm_close(Options, Socket),
  +			{error, Reason};
   		{error, Reason} -> {error, Socket, Reason}
  -	    end;
  -	{error, Reason} when KeepAlive == false ->
  -				comm_close(SslOption, Socket),
  -	    {error, Reason};
  -	{error, Reason} -> {error, Socket, Reason}
  -    end.
  +	end.
   
   send(Socket, URI, false, Payload, ExtraHeader, SslOption) ->
  -	send(Socket, URI, lists:flatten([ExtraHeader, "Connection: close\r\n"]), Payload, SslOption);
  +	send(Socket, URI, lists:flatten(["Connection: close\r\n" | ExtraHeader]), Payload, SslOption);
   send(Socket, URI, true, Payload, ExtraHeader, SslOption) -> 
   	send(Socket, URI, ExtraHeader, Payload, SslOption).
   
  
positive.code: 		["Connection:", "close"] ->
  		    parse_header(Socket, Timeout, SslOption,
  				 Header#header{connection = close});
  		_ ->
  		    parse_header(Socket, Timeout, SslOption, Header)
  	    end;
  	{error, Reason} -> {error, Reason}
      end.
  
  handle_payload(Socket, KeepAlive, Timeout, SslOption, Header) ->
      case get_payload(Socket, Timeout, SslOption, Header#header.content_length) of
  	{ok, Payload} ->
  	    ?DEBUG_LOG({encoded_response, Payload}),
  	    case xmlrpc_decode:payload(Payload) of
  		{ok, DecodedPayload} when KeepAlive == false ->
  		    ?DEBUG_LOG({decoded_response, DecodedPayload}),
  		    comm_close(SslOption, Socket),
  		    {ok, DecodedPayload};
  		{ok, DecodedPayload} when KeepAlive == true,
  					  Header#header.connection == close ->
  		    ?DEBUG_LOG({decoded_response, DecodedPayload}),
  		    comm_close(SslOption, Socket),
  		    {ok, Socket, DecodedPayload};
  		{ok, DecodedPayload} ->
  		    ?DEBUG_LOG({decoded_response, DecodedPayload}),
  		    {ok, Socket, DecodedPayload};
  		{error, Reason} when KeepAlive == false ->
  		    comm_close(SslOption, Socket),
  		    {error, Reason};
  		{error, Reason} when KeepAlive == true,
  				     Header#header.connection == close ->
  		    comm_close(SslOption, Socket),
  		    {error, Socket, Reason};
  		{error, Reason} ->
  		    {error, Socket, Reason}
  
negative.code: 	    {error, Reason};
  	{error, Reason} when KeepAlive == true,
  			     Header#header.connection == close ->
  	    comm_close(Options, Socket),
  	    {error, Socket, Reason};
  	{error, Reason} -> {error, Socket, Reason}
      end.
  