anchor.diff:  handle_diameter1(#subscriber{session_attributes = [], multisession = MultiSession}, StateData) ->
   	NewStateData = StateData#statedata{multisession = MultiSession},
   	handle_diameter2(NewStateData);
  -handle_diameter1(#subscriber{session_attributes = _Session, multisession = false},
  -	#statedata{session_id = SessionID, origin_host = OHost, origin_realm = ORealm,
  -	dest_host = DHost, dest_realm = DRealm, subscriber = SubscriberId} = StateData) ->
  -	case pg2:get_closest_pid(ocs_diamter_acct_port_sup) of
  -		{error, Reason} ->
  -			reject_radius(Reason, StateData);
  -		DiscSup ->
  -			try
  -				Svc = ocs_diameter_acct_service,
  -				Alias = ocs_diameter_base_application,
  -				AppId = ?CC_APPLICATION_ID,
  -				DiscArgs = [Svc, Alias, SessionID, OHost, DHost, ORealm, DRealm, AppId],
  -				StartArgs = [DiscArgs, []],
  -				NewStateData = StateData#statedata{multisession = false},
  -				case supervisor:start_child(DiscSup, StartArgs) of
  -					{ok, DiscFsm} ->
  -						link(DiscFsm),
  -						{next_state, request, NewStateData};
  -					{error, Reason} ->
  -						error_logger:error_report(["Failed to initiate session disconnect function",
  -								{module, ?MODULE}, {subscriber, SubscriberId}, {origin_host, OHost},
  -								{origin_realm, ORealm}, {session, SessionID}, {error, Reason}]),
  -						{next_state, request, NewStateData}
  -				end
  -			catch
  -				_:R ->
  -					reject_diameter(R, StateData)
  -			end
  -	end.
  +handle_diameter1(#subscriber{session_attributes = SessionAttributes,
  +		multisession = false}, StateData) ->
  +	NewStateData = StateData#statedata{multisession = false},
  +	start_disconnect(SessionAttributes, NewStateData),
  +	handle_diameter2(NewStateData).
   %% @hidden
   handle_diameter2(#statedata{protocol = diameter, session_id = SessionID,
   		server_address = ServerAddress, server_port = ServerPort, app_id = AppId,
  
positive.code: request(timeout, #statedata{protocol = radius} = StateData) ->
  	handle_radius(StateData);
  request(timeout, #statedata{protocol = diameter} = StateData) ->
  	handle_diameter(StateData);
  request(disconnected, #statedata{protocol = radius} = StateData) ->
  	handle_radius3(StateData);
  request(disconnected, #statedata{protocol = diameter} = StateData) ->
  	handle_diameter2(StateData).
  
  %% @hidden
  handle_radius(#statedata{req_attr = Attributes, req_auth = Authenticator,
  
negative.code: %% @see //stdlib/gen_fsm:handle_info/3
  %% @private
  %%
  handle_info(_, StateName, StateData) ->
  	{next_state, StateName, StateData}.
  
  -spec terminate(Reason, StateName, StateData) -> any()
  	when
  