anchor.diff:  							end;
   						_ ->
   							case reserve_units1(RequestType, Product, Subscriber,
  -									UnitType, true, RequestAmount, MonitoryAmount, Validity, Buckets) of
  +									UnitType, true, ReserveAmount, DebitAmount, Validity, Buckets) of
   								out_of_credit ->
   									mnesia:write(Subscriber#subscriber{session_attributes = []}),
   									{out_of_credit, SessionAttributes};
  
positive.code: -define(terminate, 3).
  
  -spec reserve_units(SubscriberID, RequestType, SessionId,
  		SessionIdentification, UnitType, RequestAmount, MonitoryAmount) -> Result
  	when
  		SubscriberID :: string() | binary(),
  		RequestType :: 1..3,
  		SessionId :: string(),
  		SessionIdentification :: [tuple()],
  		UnitType :: octets | seconds,
  		RequestAmount :: integer(),
  		MonitoryAmount :: integer(),
  		Result :: {ok, GrantedAmount} | {out_of_credit, SessionList} | {error, Reason},
  		GrantedAmount :: integer(),
  		SessionList :: [tuple()],
  		Reason :: term().
  reserve_units(SubscriberID, RequestType, SessionId,
  		SessionIdentification, UnitType, RequestAmount, MonitoryAmount) when is_list(SubscriberID) ->
  	reserve_units(list_to_binary(SubscriberID), RequestType,
  			SessionId, SessionIdentification, UnitType, RequestAmount, MonitoryAmount);
  reserve_units(SubscriberID, RequestType, SessionId,
  		SessionIdentification, UnitType, RequestAmount, MonitoryAmount) ->
  	F = fun() ->
  			case mnesia:read(subscriber, SubscriberID, read) of
  				[#subscriber{buckets = Buckets, product =
  
negative.code: 					Validity = proplists:get_value(validity, Chars),
  					case RequestType of
  						?initial ->
  							SA = update_session(SessionId, SessionIdentification, SessionAttributes, []),
  							case reserve_units1(?initial, Product, UnitType,
  									false, ReserveAmount, DebitAmount, Validity, Buckets) of
  								out_of_credit ->
  									mnesia:write(Subscriber#subscriber{session_attributes = []}),
  									{out_of_credit, SA};
  