anchor.diff:  						{type, EapType}, {data, Data}]),
   				NewEapPacket = #eap_packet{code = failure, identifier = NewEapID},
   				send_response(NewEapPacket, ?AccessReject,
  -						RadiusID, [], RequestAuthenticator, Secret, RadiusFsm),
  +						RadiusID, [], RequestAuthenticator, Attributes, Secret, RadiusFsm,
  +						StateData),
   				{stop, {shutdown, SessionID}, StateData}
   		end
   	catch
   		_:_ ->
   			EapPacket1 = #eap_packet{code = failure, identifier = EapID},
   			send_response(EapPacket1, ?AccessReject,
  -					RadiusID, [], RequestAuthenticator, Secret, RadiusFsm),
  +					RadiusID, [], RequestAuthenticator, Attributes, Secret, RadiusFsm,
  +					StateData),
   				{stop, {shutdown, SessionID}, StateData}
   	end;
   client_passthrough(#diameter_eap_app_DER{} = Request, #statedata{eap_id = EapID,
  
positive.code: 				data = TtlsData} = ocs_eap_codec:eap_packet(EapMessage),
  		#eap_ttls{more = false, message_len = undefined,
  				start = false, data = <<>>} = ocs_eap_codec:eap_ttls(TtlsData),
  		server_hello2(NewStateData)
  	catch
  		_:_ ->
  			EapPacket = #eap_packet{code = failure, identifier = EapID},
  			send_response(EapPacket, ?AccessReject,
  					RadiusID, [], RequestAuthenticator, Secret, RadiusFsm),
  			{stop, {shutdown, SessionID}, NewStateData}
  	end;
  server_hello(#diameter_eap_app_DER{} = Request, #statedata{eap_id = EapID,
  
negative.code: 	Attr5 = radius_attributes:add(?AcctInterimInterval, 300, Attr4),
  	EapPacket = #eap_packet{code = success, identifier = EapID},
  	send_response(EapPacket, ?AccessAccept,
  		RadiusID, Attr5, RequestAuthenticator, [], Secret, RadiusFsm, StateData),
  	{stop, {shutdown, SessionID}, StateData};
  server_passthrough(reject, #statedata{eap_id = EapID, 
  		session_id = SessionID, secret = Secret, start = #radius{},
  