anchor.diff:  								'Origin-Host' = OHost, 'Origin-Realm' = ORealm },
   						{reply, Answer, State};
   					{eap, _Eap} ->
  +						NewFsmHandler = gb_trees:enter(Fsm, CbProc, FsmHandler),
   						gen_fsm:send_event(Fsm, Request),
  -						{noreply, State}
  +						{noreply, State#state{cb_fsms = NewFsmHandler}}
   				end
   		end
   	catch
  
positive.code: 		CbProc :: {pid(), term()},
  		Request :: #diameter_nas_app_AAR{} | #diameter_eap_app_DER{},
  		State :: state(),
  		Result :: {Fsm, State},
  		Fsm :: undefined | pid().
  start_fsm(AuthSup, AppId, SessId, Type, OHost, ORealm,
  		Options, CbProc, Request, #state{handlers = Handlers, address = Address, port = Port,
  		cb_fsms = FsmHandler} = State) ->
  	StartArgs = [diameter, Address, Port, SessId, AppId, Type, OHost,
  			ORealm, Request, Options],
  	ChildSpec = [StartArgs, []],
  	case supervisor:start_child(AuthSup, ChildSpec) of
  		{ok, Fsm} ->
  			link(Fsm),
  			NewHandlers = gb_trees:enter(SessId, Fsm, Handlers),
  			NewFsmHandler = gb_trees:enter(Fsm, CbProc, FsmHandler),
  			{Fsm, State#state{handlers = NewHandlers, cb_fsms = NewFsmHandler}};
  		{error, Reason} ->
  			error_logger:error_report(["Error starting session handler",
  					{error, Reason}, {supervisor, AuthSup},{session_id, SessId}]),
  
negative.code: %% @see //stdlib/gen_server:handle_cast/2
  %% @private
  %%
  handle_cast({AuthFsm, Request}, #state{cb_fsms = CbHandler} = State) ->
  	case gb_trees:lookup(AuthFsm, CbHandler) of
  		{value, CbProc} ->
  			gen_server:reply(CbProc, Request),
  			NewCbHandler = gb_trees:delete(AuthFsm, CbHandler),
  			{noreply, State#state{cb_fsms = NewCbHandler}};
  		none ->
  			{noreply, State}
  	end.
  