anchor.diff:  						NewStateData = StateData#statedata{request = Request,
   								identity = Identity},
   						{next_state, vector, NewStateData, ?TIMEOUT};
  -					#eap_aka_identity{identity = <<?TEMP_TAG:6, _/bits>> = Identity}
  +					#eap_aka_identity{identity = <<?TEMP_AKA: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{request = Request,
  +								identity = Identity},
  +						{next_state, vector, NewStateData, ?TIMEOUT}
  +				end;
  +			#eap_packet{code = response, type = ?AKAprime, identifier = EapID, data = Data} ->
  +				case ocs_eap_codec:eap_aka(Data) of
  +					#eap_aka_identity{identity = <<?PERM_AKAp,
  +							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{request = Request,
  +								identity = Identity},
  +						{next_state, vector, NewStateData, ?TIMEOUT};
  +					#eap_aka_identity{identity = <<?TEMP_AKAp:6, _/bits>> = Identity}
   							when IdReq == full ->
   						[Pseudonym | _] = binary:split(Identity, <<$@>>, []),
   						CompressedIMSI = decrypt_imsi(Pseudonym, Keys),
  
positive.code: 		diameter_port_server = PortServer, keys = Keys} = StateData) ->
  	try
  		case ocs_eap_codec:eap_packet(EapMessage) of
  			#eap_packet{code = response, type = ?AKAprime, identifier = EapID, data = Data} ->
  				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
  
negative.code: 		case ocs_eap_codec:eap_packet(EapMessage) of
  			#eap_packet{code = response, type = ?Identity,
  					identifier = StartEapID,
  					data = <<Tag, PermanentID/binary>> = Identity}
  					when ((Tag =:= ?PERM_AKA) or (Tag =:= ?PERM_AKAp)),
  					Trusted == true ->
  				NextStateData = NewStateData#statedata{eap_id = StartEapID,
  						identity = Identity},
  				[IMSI | _] = binary:split(PermanentID, <<$@>>, []),
  