anchor.diff:              send_msg(rpbdelresp, State);
           {error, notfound} ->  %% delete succeeds if already deleted
               send_msg(rpbdelresp, State);
  -        {error, precommit_fail} ->
  -            send_error("precommit fail", [], State);
  -        {error, {precommit_fail, Reason}} ->
  -            send_error("precommit fail - ~p", [Reason], State);
           {error, Reason} ->
               send_error("~p", [Reason], State)
       end;
  
positive.code: %% Return the current version of riak_kv
  -spec get_riak_version() -> binary().
  get_riak_version() ->
      Apps = application:which_applications(),
      {value,{riak_kv,_,Vsn}} = lists:keysearch(riak_kv, 1, Apps),
      riakc_pb:to_binary(Vsn).
  
  
  
negative.code:                 #state{client=C} = State) ->
      case C:list_buckets() of
          {ok, Buckets} ->
              send_msg(#rpblistbucketsresp{buckets = Buckets}, State);
          {error, Reason} ->
              send_error("~p", [Reason], State)
      end;
  
  %% Start streaming in list keys 
  process_message(#rpblistkeysreq{bucket=B}=Req, 
                  #state{client=C} = State) ->
      %% Pause incoming packets - stream_list_keys results
      %% will be processed by handle_info, it will 
      %% set socket active again on completion of streaming.
      {ok, ReqId} = C:stream_list_keys(B),
      {pause, State#state{req = Req, req_ctx = ReqId}}.
  
  %% @private
  %% @doc if return_body was requested, call the client to get it and return
  