anchor.diff:       State#state{protocol_buffers = Buffers#protocol_buffers{tls_cipher_texts = CipherTexts},
                    connection_states = ConnectionStates}}.
   
  -
   next_event(StateName, Record, State) ->
       next_event(StateName, Record, State, []).
   %%
   next_event(StateName, no_record, State0, Actions) ->
  -    case next_record(State0) of
  +    case next_record(StateName, State0) of
    	{no_record, State} ->
               {next_state, StateName, State, Actions};
  - 	{#ssl_tls{} = Record, State} ->
  - 	    {next_state, StateName, State, [{next_event, internal, {protocol_record, Record}} | Actions]};
  -	#alert{} = Alert ->
  -            Version = State0#state.connection_env#connection_env.negotiated_version,
  -            ssl_connection:handle_own_alert(Alert, Version, StateName, State0)
  +        {Record, State} ->
  +            next_event(StateName, Record, State, Actions)
       end;
  -next_event(StateName, Record, State, Actions) ->
  -    case Record of
  -	no_record ->
  -	    {next_state, StateName, State, Actions};
  -	#ssl_tls{} = Record ->
  -	    {next_state, StateName, State, [{next_event, internal, {protocol_record, Record}} | Actions]};
  -	#alert{} = Alert ->
  -            Version = State#state.connection_env#connection_env.negotiated_version,
  -            ssl_connection:handle_own_alert(Alert, Version, StateName, State)
  -    end.
  -
  +next_event(StateName,  #ssl_tls{} = Record, State, Actions) ->
  +    {next_state, StateName, State, [{next_event, internal, {protocol_record, Record}} | Actions]};
  +next_event(StateName,  #alert{} = Alert, State, Actions) ->
  +    {next_state, StateName, State, [{next_event, internal, Alert} | Actions]}.
   
   %%% TLS record protocol level application data messages 
   handle_protocol_record(#ssl_tls{type = ?APPLICATION_DATA, fragment = Data}, StateName, 
  
positive.code: %%====================================================================
  %% State transition handling
  %%====================================================================
  next_record(#state{handshake_env = 
                         #handshake_env{unprocessed_handshake_events = N} = HsEnv} 
              = State) when N > 0 ->
      {no_record, State#state{handshake_env = 
                                  HsEnv#handshake_env{unprocessed_handshake_events = N-1}}};
  next_record(#state{protocol_buffers =
                         #protocol_buffers{tls_cipher_texts = [_|_] = CipherTexts},
                     connection_states = ConnectionStates,
                     ssl_options = #ssl_options{padding_check = Check}} = State) ->
      next_record(State, CipherTexts, ConnectionStates, Check);
  next_record(#state{protocol_buffers = #protocol_buffers{tls_cipher_texts = []},
                     protocol_specific = #{active_n_toggle := true, active_n := N} = ProtocolSpec,
                     static_env = #static_env{socket = Socket,
                                              close_tag = CloseTag,
                                              transport_cb = Transport}  
                    } = State) ->
      case tls_socket:setopts(Transport, Socket, [{active, N}]) of
   	ok ->
               {no_record, State#state{protocol_specific = ProtocolSpec#{active_n_toggle => false}}}; 
   	_ ->
               self() ! {CloseTag, Socket},
               {no_record, State}
       end;
  next_record(State) ->
      {no_record, State}.
  
  %% Decipher next record and concatenate consecutive ?APPLICATION_DATA records into one
  %%
  
negative.code:     case tls_record:get_tls_records(Data, Versions, Buf0, SslOpts) of
  	{Records, Buf1} ->
  	    CT1 = CT0 ++ Records,
  	    next_record(StateName, State0#state{protocol_buffers =
  					 Buffers#protocol_buffers{tls_record_buffer = Buf1,
  								  tls_cipher_texts = CT1}});
  	#alert{} = Alert ->
  