anchor.diff:  		Direction, SessionAttributes) ->
   	case mnesia:read(product, ProdRef, read) of
   		[#product{product = OfferId, balance = BucketRefs}] ->
  -			Buckets = lists:flatten([mnesia:read(bucket, Id, sticky_write) || Id <- BucketRefs]),
  +			Buckets = lists:flatten([mnesia:read(bucket, Id, write) || Id <- BucketRefs]),
   			F = fun({'Session-Id', _}) ->
   					true;
   				({?AcctSessionId, _}) ->
  
positive.code: 		Service, _Timestamp, _Address, _Direction, SessionAttributes) ->
  	case mnesia:dirty_read(product, ProdRef) of
  		[#product{balance = BucketRefs}] ->
  			Buckets = lists:flatten([mnesia:read(bucket, Id, sticky_write) || Id <- BucketRefs]),
  			authorize5(Service, Buckets, ServiceType, SessionAttributes, Attributes);
  		[] ->
  			mnesia:abort(product_not_found)
  
negative.code: 							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)
  											|| Id <- BucketRefs]),
  									F2 = fun(#bucket{units = cents, remain_amount = RM}) when RM < 0 ->
  												false;
  