anchor.diff:  					{session, AcctSessionId}]),
   			{reply, {ok, response(Id, Authenticator, Secret)}, State};
   		{error, out_of_credit, SessionList} ->
  -			start_disconnect(Subscriber, Id, Authenticator, State, SessionList);
  +			start_disconnect(Subscriber, Id, Authenticator, State, SessionList),
  +			{reply, {ok, response(Id, Authenticator, Secret)}, State};
   		{ok, #subscriber{enabled = false, session_attributes = SessionList}} ->
  -			start_disconnect(Subscriber, Id, Authenticator, State, SessionList);
  +			start_disconnect(Subscriber, Id, Authenticator, State, SessionList),
  +			{reply, {ok, response(Id, Authenticator, Secret)}, State};
   		{ok, #subscriber{}} ->
   			{reply, {ok, response(Id, Authenticator, Secret)}, State}
   	end;
  
positive.code: 	Candidates = [A1, A2, A3],
  	case ocs_rating:rating(Subscriber, true, UsageSecs, UsageOctets, Candidates) of
  		{error, out_of_credit, SessionList}  ->
  			start_disconnect(Subscriber, Id, Authenticator, State, SessionList);
  		{error, Reason} ->
  			error_logger:warning_report(["Accounting failed",
  					{module, ?MODULE}, {subscriber, Subscriber},
  
negative.code: 	start_disconnect1(Subscriber, Id, Authenticator, State, T);
  start_disconnect1(Subscriber, Id, Authenticator,
  		#state{handlers = Handlers, disc_sup = DiscSup, disc_id = DiscId} = State,
  		[{#client{address = Address, port = Port, secret = Secret}, SessionAttributes} | T]) ->
  	NasId = proplists:get_value(?NasIdentifier, SessionAttributes),
  	AcctSessionId = proplists:get_value(?AcctSessionId, SessionAttributes),
  	DiscArgs = [Address, NasId, Subscriber,
  			AcctSessionId, Secret, Port, SessionAttributes, Id],
  	StartArgs = [DiscArgs, []],
  	supervisor:start_child(DiscSup, StartArgs),
  	start_disconnect1(Subscriber, Id, Authenticator, State, T);
  start_disconnect1(_Subscriber, _Id, _Authenticator, _State, []) ->
  	ok.
  
  