anchor.diff:  			end
   	end;
   charge2(Service, ServiceId, #product{id = ProductId} = Product, Buckets,
  -		#price{units = Units, size = UnitSize, amount = UnitPrice,
  -		type = PriceType, currency = Currency}, final,
  +		PriceType, UnitSize, Units, Currency, UnitPrice, final,
   		{Units, Amount} = DebitAmount, {Units, 0} = ReserveAmount,
   		SessionId, Rated, ChargingKey) ->
   	Rated2 = Rated#rated{price_type = PriceType, currency = Currency},
  
positive.code: 								case lists:all(F1, Buckets) of
  									true ->
  										Rated = #rated{product = OfferName, price_type = tariff},
  										{charge1(Protocol, Service, ServiceId, Product, Buckets, Price,
  											Flag, DebitAmounts, ReserveAmounts,
  											get_session_id(SessionAttributes), Rated, ChargingKey), RedirectServerAddress};
  									false ->
  										{out_of_credit, RedirectServerAddress, SessionList, [], []}
  								end;
  
negative.code: 			end
  	end;
  charge2(Service, ServiceId, #product{id = ProductId} = Product, Buckets,
  		PriceType, UnitSize, Units, Currency, UnitPrice, event,
  		{Units, Amount} = DebitAmount, {Units, 0} = ReserveAmount,
  		SessionId, Rated, ChargingKey) ->
  	Rated2 = Rated#rated{price_type = PriceType, currency = Currency},
  