anchor.diff:  %%           specified by RFC3261 #7.5.
   %% Returns : NewRecv = recv record()
   %%--------------------------------------------------------------------
  -handle_received_data2(<<?CR, ?LF, Rest/binary>>, #recv{frame = <<>>}=Recv) ->
  +handle_received_data2(<<?CR, ?LF, Rest/binary>>, #recv{frame = <<>>} = Recv) ->
       %% Ignore CRLF received when current recv.frame is empty.
       handle_received_data2(Rest, Recv);
   
  -handle_received_data2(<<?LF, Rest/binary>>, #recv{frame = <<>>}=Recv) ->
  +handle_received_data2(<<?LF, Rest/binary>>, #recv{frame = <<>>} = Recv) ->
       %% Ignore LF received when current recv.frame is empty.
       handle_received_data2(Rest, Recv);
   
  -handle_received_data2(<<?LF, Rest/binary>>, #recv{frame = <<?CR>>}=Recv) ->
  +handle_received_data2(<<?LF, Rest/binary>>, #recv{frame = <<?CR>>} = Recv) ->
       %% LF received when current recv.frame was a CR - ignore it and clear recv.frame.
       handle_received_data2(Rest, Recv#recv{frame = <<>>});
   
  
positive.code:     %% Check if there is already a header-body separator in NewFrame
      case has_header_body_separator(NewFrame, 0) of
  	{true, NewFrameBO} ->
  	    init_frame(NewFrame, NewFrameBO, Recv#recv{msg_stack=NewStack});
  	false ->
  	    %% create new recv record to get correct defaults, then just set msg_stack and frame (and origin_str)
  	    #recv{msg_stack=NewStack, frame=NewFrame, origin_str=OriginStr}
      end;
  decode_frame(Frame, Recv) when is_binary(Frame), is_record(Recv, recv) ->
      %% bytes_left is > 0, we can't decode a frame right now. Save it in recv.
      Recv#recv{frame=Frame}.
  
  %%--------------------------------------------------------------------
  %% Function: has_header_body_separator(Data, Offset)
  
negative.code: 	    init_frame(NewFrame, BodyOffset, Recv);
  	false ->
  	    %% Header-body separator not found
  	    Recv#recv{frame = NewFrame}
      end;
  
  %%--------------------------------------------------------------------
  