anchor.diff:  	{error, E} ->
   	    logger:log(error, "TCP receiver: Error when reading data : ~s (~p)", [inet:format_error(E), E]),
   	    {error, E}
  +    end.
  +
  +%% Look for header-body separator, return true | false
  +has_header_body_separator(Data) ->
  +    case string:str(Data, "\r\n\r\n") of
  +	0 ->
  +	    false;
  +	N when is_integer(N) ->
  +	    true
       end.
   
   %% We have found the separator between Header and Body. We can now extract the
  
positive.code: 	[CLenStr] ->
  	    case util:isnumeric(CLenStr) of
  		true ->
  		    %% must be careful, it could be a partial content-header
  		    %% XXX do we correctly detect that we have received for example
  		    %% 'Content-Length: 10' but no LF? Real length might be '101'.
  		    list_to_integer(CLenStr);
  		false ->
  		    invalid
  
negative.code: 		       [length(L), length(DataIn)]),
  	    %% remove_separator() removes any leading CR or LF
  	    SoFar = remove_separator(lists:append(DataIn, L)),
  	    case has_header_body_separator(SoFar) of
  		false ->
  		    %% No Header Body separator yet, read more data
  		    do_recv(SoFar, State);
  		true ->
  		    Rest = header_received(SoFar, State),
  		    logger:log(debug, "TCP receiver: My buffer now contains ~p bytes of data", [length(Rest)]),
  		    Rest
  	    end;
  	{error, closed} ->
  