anchor.diff:      ReqData = <<0, "networkid=", SSID/binary, ",nasid=SCG4,portid=1">>,
       Id = 1,
       EAPData = eapol:request(Id, identity, ReqData),
  -    send_eapol_packet(EAPData, State#state{eapol_state = {request, Id}}).
  +    send_eapol_packet(EAPData, State#state{eapol_state = {request, Id},
  +					   eapol_retransmit = 0}).
   
   eap_handshake({start, _Data},
  -	      #state{eapol_state = {request, _}} = State) ->
  +	      #state{eapol_state = {request, _}} = State0) ->
       %% restart the handshake
  +    State = stop_eapol_timer(State0),
       init_eapol(State);
   
   eap_handshake(Data = {response, Id, EAPData, Response},
  -	      #state{eapol_state = {request, Id}} = State) ->
  +	      #state{eapol_state = {request, Id}} = State0) ->
       lager:debug("EAP Handshake: ~p", [Data]),
  +    State = stop_eapol_timer(State0),
       Next =
   	case Response of
   	    {identity, Identity} ->
  
positive.code: connected({rekey, Type}, State0) ->
      lager:warning("in CONNECTED got REKEY: ~p", [Type]),
      State = rekey_start(Type, State0),
      {next_state, connected, State, ?IDLE_TIMEOUT};
  
  connected(Event = {eapol_retransmit, {key, Flags, KeyData}},
  
negative.code: 	end,
      eap_handshake_next(Next, State);
  
  eap_handshake(Data, State0) ->
      lager:warning("unexpected EAP Handshake: ~p", [Data]),
      State = stop_eapol_timer(State0),
      wtp_del_station(State),
      aaa_disassociation(State),
      State#state{eapol_state = undefined}.
  