anchor.diff:  							case mnesia:dirty_read(offer, OfferId) of
   								[#offer{char_value_use = CharValueUse, end_date = EndDate, start_date = StartDate} = Offer]
   										when ((StartDate =< Now) or (StartDate == undefined)), ((EndDate > Now) or ( EndDate == undefined)) ->
  -									Buckets = lists:flatten([mnesia:read(bucket, Id, write)
  +									Buckets = lists:flatten([mnesia:read(bucket, Id, sticky_write)
   											|| Id <- BucketRefs]),
   									F2 = fun(#bucket{units = cents, remain_amount = RM}) when RM < 0 ->
   												false;
  
positive.code: 					[#product{product = OfferId, balance = BucketRefs} = Product] ->
  						case mnesia:read(offer, OfferId, read) of
  							[#offer{char_value_use = CharValueUse, name = OfferName} = _Offer] ->
  								Buckets = lists:flatten([mnesia:read(bucket, Id, write)
  										|| Id <- BucketRefs]),
  								F1 = fun(#bucket{units = cents, remain_amount = RM}) when RM < 0 ->
  										false;
  
negative.code: 		(is_list(ReserveAmounts) or (ReserveAmounts == undefined)),
  		length(SessionAttributes) > 0 ->
  	F = fun() ->
  			case mnesia:read(service, SubscriberID, sticky_write) of
  				[#service{product = ProdRef, session_attributes = SessionList} = Service] ->
  					case mnesia:read(product, ProdRef, read) of
  						[#product{product = OfferId,
  