anchor.diff:  					{_, _Identity} when MethodPrefer == pwd ->
   						PwdSup = State#state.pwd_sup,
   						{Fsm, NewState} = start_fsm(PwdSup, 5, SessionId, AuthType, OHost,
  -								ORealm, [], State),
  -						Answer = gen_fsm:sync_send_event(Fsm, Request),
  -						{reply, Answer, NewState};
  +								ORealm, [], CbFsm, State),
  +						gen_fsm:send_event(Fsm, Request),
  +						%{reply, Answer, NewState};
  +						{noreply, NewState};
   					none ->
   						#diameter_nas_app_AAR{'User-Name' = [UserName],
   								'User-Password' = [Password]} = Request,
  
positive.code: 		method_order :: [ocs:eap_method()],
  		simple_auth_sup :: undefined | pid(),
  		pwd_sup :: undefined | pid(),
  		handlers = gb_trees:empty() :: gb_trees:tree(
  				Key :: (SessionId :: string()), Value :: (Fsm :: pid()))}).
  
  
negative.code: %%  internal functions
  %%----------------------------------------------------------------------
  
  -spec request(Caps, Eap, Request, CbFsm, State) -> Reply
  	when
  		Caps :: capabilities(),
  		Eap :: none | {eap, #eap_packet{}},
  		Request :: #diameter_nas_app_AAR{} | #diameter_nas_app_STR{}
  				| #diameter_eap_app_DER{},
  		CbFsm :: pid(),
  		State :: state(),
  		Reply :: {reply, Answer, State} | {noreply, State},
  		Answer :: #diameter_nas_app_AAA{} | #diameter_nas_app_STA{}
  				| #diameter_eap_app_DEA{}.
  %% @doc Based on the DIAMETER request generate appropriate DIAMETER
  %% answer.
  %% @hidden
  request(Caps, none, Request, CbFsm, State) when is_record(Request, diameter_nas_app_AAR) ->
  	#diameter_caps{origin_host = {OHost,_}, origin_realm = {ORealm,_}} = Caps,
  	request1(none, OHost, ORealm, Request, CbFsm, State);
  request(Caps, {eap, <<_:32, ?Identity, Identity/binary>>}, Request, CbFsm, State)
  		when is_record(Request, diameter_eap_app_DER) ->
  	#diameter_caps{origin_host = {OHost,_}, origin_realm = {ORealm,_}} = Caps,
  	request1({identity, Identity}, OHost, ORealm, Request, CbFsm, State);
  request(Caps, {eap, <<_, EapId, _:16, ?LegacyNak, Data/binary>>}, Request, CbFsm, State)
  		when is_record(Request, diameter_eap_app_DER) ->
  	#diameter_caps{origin_host = {OHost,_}, origin_realm = {ORealm,_}} = Caps,
  	request1({legacy_nak, EapId, Data}, OHost, ORealm, Request, CbFsm, State);
  request(Caps, Eap, Request, CbFsm, State) when is_record(Request, diameter_eap_app_DER) ->
  	#diameter_caps{origin_host = {OHost,_}, origin_realm = {ORealm,_}} = Caps,
  	request1(Eap, OHost, ORealm, Request, CbFsm, State);
  request(Caps, none, Request, _CbFsm, State) when is_record(Request, diameter_nas_app_STR) ->
  	#diameter_caps{origin_host = {OHost,_}, origin_realm = {ORealm,_}} = Caps,
  	SessionId = Request#diameter_nas_app_STR.'Session-Id',
  	try
  