anchor.diff:  									{Units, UnitsCharged + NewUnitsCharged},
   									ReserveAmount, {Units, 0}, SessionId, Rated, ChargingKey, Buckets)
   					end;
  -				false ->
  +				false when UnitsCharged > 0 ->
   					Now = erlang:system_time(millisecond),
   					Reservation = #{ts => Now, debit => UnitsCharged, reserve => 0,
   							service_id => ServiceId, charging_key => ChargingKey},
  
positive.code: 							units = Units, product = [ProductId]} | Buckets2],
  					charge3(Service, ServiceId, Product, Buckets4, interim,
  							DebitAmount, {Units, UnitsCharged},
  							{Units, 0}, {Units, 0}, SessionId, Rated, ChargingKey, Buckets)
  			end
  	end;
  
negative.code: 							product = [ProductId]} | Buckets2],
  					charge3(Service, ServiceId, Product, Buckets4, interim,
  							DebitAmount, {Units, Damount - UnitsCharged},
  							ReserveAmount, {Units, 0}, SessionId, Rated, ChargingKey, Buckets);
  				false ->
  					charge3(Service, ServiceId, Product, Buckets2, interim,
  							DebitAmount, {Units, 0},
  							ReserveAmount, {Units, 0}, SessionId, Rated, ChargingKey, Buckets)
  			end
  	end;
  