anchor.diff:  	Rated1 = rated(Debits, Rated),
   	Service2 = Service1#service{session_attributes = []},
   	ok = mnesia:write(Service2),
  -	{out_of_credit, SessionList, Rated1, DeletedBuckets,
  +	{out_of_credit, RedirectServerAddress, SessionList, Rated1, DeletedBuckets,
   			accumulated_balance(NewBuckets, P#product.id)};
   rate7(#service{enabled = false, session_attributes = SessionList} = Service1,
   		Buckets, _Flag, {Units, _Charge}, {Units, _Charged},
  
positive.code: %% 	`{ok, Service, GrantedAmount, Rated}' for `event'.
  %%
  %% 	If subscriber's balance is insufficient to cover the `DebitAmounts'
  %% 	and `ReserveAmounts' returns `{out_of_credit, SessionList}' for interim
  %% 	updates and `{out_of_credit, SessionList, Rated}' for final or
  %% 	`{disabled, SessionList}' if the subscriber is not enabled. In both
  %% 	cases subscriber's balance is debited.  `SessionList' describes the
  %% 	known active sessions which should be disconnected.
  
negative.code: 						[#product{characteristics = Chars, product = OfferId,
  								balance = BucketRefs} = Product] ->
  							case mnesia:read(offer, OfferId, read) of
  								[#offer{char_value_use = CharValueUse} = Offer] ->
  									Buckets = lists:flatten([mnesia:read(bucket, Id, sticky_write)
  											|| Id <- BucketRefs]),
  									F2 = fun(#bucket{units = cents, remain_amount = RM}) when RM < 0 ->
  												false;
  											(_) ->
  												true
  									end,
  									RedirectServerAddress = case lists:keyfind("redirectServer",
  											#char_value_use.name, CharValueUse) of
  										#char_value_use{values = [#char_value{value = Value}]}
  												when is_list(Value) ->
  											Value;
  										_Other ->
  											undefined
  									end,
  									case lists:all(F2, Buckets) of
  										true ->
  