anchor.diff:  process_message(#rpbdelreq{bucket=B, key=K, rw=RW0}, 
                   #state{client=C} = State) ->
       RW = normalize_rw_value(RW0),
  -    case C:delete(B, K, default_rw(RW)) of
  +    case C:delete(B, K, default_if_undef(RW)) of
           ok ->
               send_msg(rpbdelresp, State);
           {error, notfound} ->  %% delete succeeds if already deleted
  
positive.code: 
  %% Set default values in the options record if none are provided.
  %% Erlang protobuffs does not support default, so have to do it here.
  default_r(undefined) ->
      default;
  default_r(R) ->
      R.
  
  default_w(undefined) ->
      default;
  default_w(W) ->
      W.
  
  default_dw(undefined) ->
      default;
  default_dw(DW) ->
      DW.
  
  default_rw(undefined) ->
      default;
  default_rw(RW) ->
      RW.
  
  default_timeout() ->
      60000.
          
  %% Convert a vector clock to erlang
  erlify_rpbvc(undefined) ->
      vclock:fresh();
  
negative.code:     W = normalize_rw_value(W0),
      DW = normalize_rw_value(DW0),
      Options = case ReturnBody of 1 -> [returnbody]; true -> [returnbody]; _ -> [] end,
      case C:put(O, default_if_undef(W), default_if_undef(DW), default_timeout(), Options) of
          ok when is_binary(ReturnKey) ->
              PutResp = #rpbputresp{key = ReturnKey},
              send_msg(PutResp, State);
  