anchor.diff:  default_timeout() ->
       ?DEFAULT_TIMEOUT.
   
  -%% Construct a {Type, Bucket} tuple, if not working with the default bucket
  -maybe_bucket_type(undefined, B) ->
  -    B;
  -maybe_bucket_type(<<"default">>, B) ->
  -    B;
  -maybe_bucket_type(T, B) ->
  -    {T, B}.
  -
   %% always construct {Type, Bucket} tuple, filling in default type if needed
  -bucket_type(undefined, B) ->
  -    {<<"default">>, B};
  -bucket_type(T, B) ->
  -    {T, B}.
  -
  +bucket_type(B) ->
  +    {<<"default">>, B}.
  
positive.code:     {ok, riak_pb_codec:encode(Message)}.
  
  %% @doc process/2 callback. Handles an incoming request message.
  process(#rpbcountergetreq{bucket=B0, type=T, key=K, r=R0, pr=PR0,
                            notfound_ok=NFOk, basic_quorum=BQ},
          #state{client=C} = State) ->
      case lists:member(pncounter, riak_core_capability:get({riak_kv, crdt}, [])) of
          true ->
              R = decode_quorum(R0),
              PR = decode_quorum(PR0),
              B = maybe_bucket_type(T, B0),
              case C:get(B, K, make_option(r, R) ++
                             make_option(pr, PR) ++
                             make_option(notfound_ok, NFOk) ++
  
negative.code:         false ->
              {error, {format, "Counters are not supported"}, State}
      end;
  process(#rpbcounterupdatereq{bucket=B, key=K,  w=W0, dw=DW0, pw=PW0, amount=CounterOp,
                               returnvalue=RetVal},
          #state{client=C} = State) ->
      case {allow_mult(B), lists:member(pncounter, riak_core_capability:get({riak_kv, crdt}, []))} of
          {true, true} ->
              O = riak_kv_crdt:new(B, K, ?LEGACY_COUNTER_TYPE),
  