anchor.diff:  						EapPacket, PortServer, Request, NextStateData),
   				{next_state, identity, NextStateData, ?TIMEOUT};
   			#eap_packet{code = response, type = ?Identity,
  -					identifier = StartEapID} when Trusted == false ->
  +					identifier = StartEapID, data = Identity} when Trusted == false ->
   				NextEapID = (StartEapID rem 255) + 1,
   				EapData = ocs_eap_codec:eap_aka(#eap_aka_identity{fullauth_id_req = true}),
  -				NextStateData = NewStateData#statedata{eap_id = NextEapID, id_req = full},
  +				NextStateData = NewStateData#statedata{eap_id = NextEapID,
  +						identity = Identity, id_req = full},
   				EapPacket = #eap_packet{code = request,
   						type = ?AKA, identifier = NextEapID, data = EapData},
   				send_diameter_response(SessionId, AuthReqType,
  
positive.code: 						{next_state, vector, NextStateData, ?TIMEOUT};
  					#eap_packet{code = response, type = ?Identity,
  							identifier = StartEapID,
  							data = <<?FAST_TAG:6, _/bits>>}
  							when Trusted == true ->
  						% @todo handle fast re-authentication
  						NextEapID = (StartEapID rem 255) + 1,
  						EapData = ocs_eap_codec:eap_aka(#eap_aka_identity{fullauth_id_req = true}),
  						NextStateData = NewStateData#statedata{eap_id = NextEapID, id_req = full},
  						EapPacket = #eap_packet{code = request,
  								type = ?AKA, identifier = NextEapID, data = EapData},
  						send_radius_response(EapPacket, ?AccessChallenge, [], RadiusID,
  
negative.code: 		#eap_packet{code = response, type = ?AKA, identifier = EapID,
  				data = Data} = ocs_eap_codec:eap_packet(EapMessage),
  		case ocs_eap_codec:eap_aka(Data) of
  			#eap_aka_identity{identity = <<?PERM_TAG,
  					PermanentID/binary>> = Identity} when IdReq == full ->
  				[IMSI | _] = binary:split(PermanentID, <<$@>>, []),
  				% @todo handle DIAMETER ANID AVP
  				gen_fsm:send_event(AucFsm, {self(), IMSI, "WLAN"}),
  				NewStateData = StateData#statedata{identity = Identity},
  				{next_state, vector, NewStateData, ?TIMEOUT};
  			#eap_aka_identity{identity = <<?TEMP_TAG:6, _/bits>> = Identity}
  					when IdReq == full ->
  				Pseudonym = binary:split(Identity, <<$@>>, []),
  				CompressedIMSI = decrypt_imsi(Pseudonym, Keys),
  				IMSI = compressed_imsi(CompressedIMSI),
  				% @todo handle DIAMETER ANID AVP
  				gen_fsm:send_event(AucFsm, {self(), IMSI, "WLAN"}),
  				NewStateData = StateData#statedata{identity = Identity},
  				{next_state, vector, NewStateData, ?TIMEOUT}
  		end
  	catch
  		_:_Reason ->
  