anchor.diff:  			{UnitReserve, PriceReserve} = price_units(PriceReserveUnits,
   					UnitSize, UnitPrice),
   			case reserve_session(cents, PriceReserve, SessionId, Buckets2) of
  -				{0, _Buckets3}  ->
  +				{0, _Buckets3}  when UnitsReserved == 0 ->
   					{unauthorized, out_of_credit, ExistingAttr};
   				{PriceReserve, Buckets3}  ->
   					SessionTimeout = UnitsReserved + UnitReserve,
  
positive.code: %% @hidden
  authorize6(#subscriber{buckets = Buckets, attributes= ExistingAttr}
  		= Subscriber, ServiceType, SessionAttributes, Attributes) ->
  	F = fun(#bucket{remain_amount = R, units = U})
  				when
  				((ServiceType == undefined) orelse
  				(((ServiceType == ?RADIUSDATA) orelse (ServiceType == ?DIAMETERDATA)) and
  				((U == octets) orelse (U == cents))) orelse
  				(((ServiceType == ?RADIUSVOICE) orelse (ServiceType == ?DIAMETERVOICE)) and
  				((U == seconds) orelse (U == cents)))) andalso
  				(R > 0) ->
  			true;
  		(_) ->
  			false
  	end,
  
negative.code: 					authorize4(Protocol, ServiceType, list_to_existing_atom(TariffTable),
  							Subscriber, Destination, Prices, SessionAttributes, Reserve);
  				false ->
  					F = fun(#price{type = usage, units = seconds}) ->
  							true;
  						(_) ->
  							false
  					end,
  					case lists:filter(F, Prices) of
  						[Price | _] ->
  							authorize5(Protocol, ServiceType, Subscriber,
  									Price, SessionAttributes, Reserve);
  						[] ->
  							authorize6(Subscriber, ServiceType, SessionAttributes, Attributes)
  					end
  			end
  	end.
  