anchor.diff:  					case Amount of
   						N when N >= 0 ->
   							authorize4(Protocol, ServiceType, Service, Buckets,
  -								Price#price{amount = N}, SessionAttributes, Reserve);
  +									Price#price{amount = N}, SessionAttributes,
  +									Reserve, ReserveUnits);
   						_N ->
   							mnesia:abort(negative_amount)
   					end;
  -				Other ->
  +				_Other ->
   					mnesia:abort(table_lookup_failed)
   			end;
   		false ->
   			mnesia:abort(undefined_tariff)
   	end;
   authorize3(Protocol, ServiceType, Service,
  -		Buckets, _Address, Price, SessionAttributes, Reserve) ->
  +		Buckets, _Address, Price, SessionAttributes, Reserve, ReserveUnits) ->
   	authorize4(Protocol, ServiceType, Service,
  -			Buckets, Price, SessionAttributes, Reserve).
  +			Buckets, Price, SessionAttributes, Reserve, ReserveUnits).
   %% @hidden
   authorize4(_Protocol, ServiceType,
   		#service{session_attributes = ExistingAttr, attributes = Attr} = Service,
   		Buckets, #price{units = Units, size = UnitSize, amount = UnitPrice},
  -		SessionAttributes, Reserve) ->
  +		SessionAttributes, Reserve, ReserveUnits) ->
   	SessionId = get_session_id(SessionAttributes),
   	case update_session(Units, 0, Reserve,
   			undefined, undefined, SessionId, Buckets) of
  -		{0, Reserve, _Buckets2} ->
  +		{0, Reserve, _Buckets2} when ReserveUnits == seconds ->
   			NewAttr = radius_attributes:store(?SessionTimeout, Reserve, Attr),
   			authorize5(Service, Buckets, ServiceType, SessionAttributes, NewAttr);
  +		{0, Reserve, _Buckets2} ->
  +%			NewAttr = radius_attributes:store(?SessionTimeout, Reserve, Attr),
  +			authorize5(Service, Buckets, ServiceType, SessionAttributes, Attr);
   		{0, UnitsReserved, Buckets2} ->
   			PriceReserveUnits = (Reserve- UnitsReserved),
   			{UnitReserve, PriceReserve} = price_units(PriceReserveUnits,
  
positive.code: 		case lists:foldl(F, [], Bundle) of
  			[#offer{} = Offer | _] ->
  				authorize2(Protocol, ServiceType, Service, Buckets, Offer,
  						Timestamp, Address, Direction, SessionAttributes, Reserve);
  			[] ->
  				authorize5(Service, Buckets, ServiceType, SessionAttributes, Attributes)
  		end
  
negative.code: 	case filter_prices_tod(Timestamp, FilteredPrices1) of
  		[Price | _] ->
  			authorize4(Protocol, ServiceType, Service,
  					Buckets, Price, SessionAttributes, Reserve, ReserveUnits);
  		_ ->
  			authorize5(Service, Buckets, ServiceType, SessionAttributes, Attributes)
  	end;
  authorize2(_Protocol, ServiceType,
  		#service{attributes = Attributes} = Service, Buckets, _Offer, _Timestamp,
  		_Address, _Direction, SessionAttributes, _Reserve, _ReserveUnits) ->
  	authorize5(Service, Buckets, ServiceType, SessionAttributes, Attributes).
  %% @hidden
  authorize3(Protocol, ServiceType, Service, Buckets, Address,
  		#price{type = tariff, char_value_use = CharValueUse} = Price,
  		SessionAttributes, Reserve, ReserveUnits) ->
  	case lists:keyfind("destPrefixTariffTable", #char_value_use.name, CharValueUse) of
  		#char_value_use{values = [#char_value{value = TariffTable}]} ->
  			Table = list_to_existing_atom(TariffTable),
  