anchor.diff:  %%      Key lists are updated asynchronously, so this may be slightly
   %%      out of date if called immediately after a put or delete.
   list_keys(Bucket, Filter, Timeout0, {?MODULE, [Node, _ClientId]}) ->
  -    Timeout = 
  +    Timeout =
           case Timeout0 of
  -            T when is_integer(T) -> T; 
  +            T when is_integer(T) -> T;
               _ -> ?DEFAULT_TIMEOUT*8
           end,
       Me = self(),
  
positive.code:             riak_kv_keys_fsm:ack_keys(From),
              wait_for_listkeys(ReqId, [Res|Acc]);
          {ReqId,{keys,Res}} -> wait_for_listkeys(ReqId, [Res|Acc]);
          {ReqId, {error, Error}} -> {error, Error}
      end.
  
  %% @private
  wait_for_listbuckets(ReqId) ->
      receive
          {ReqId,{buckets, Buckets}} -> 
              {ok, Buckets};
          {ReqId, Error} -> 
              {error, Error}
      end.
  
  
negative.code: list_buckets(Filter, Timeout, Type, {?MODULE, [Node, _ClientId]}) ->
      Me = self(),
      ReqId = mk_reqid(),
      {ok, _Pid} = riak_kv_buckets_fsm_sup:start_buckets_fsm(Node,
                                                             [{raw, ReqId, Me},
                                                              [Filter, Timeout,
                                                               false, Type]]),
      wait_for_listbuckets(ReqId).
  
  