anchor.diff:  %%      Put throws siblings if the riakc_obj contains siblings
   %%      that have not been resolved by calling select_sibling/2 or 
   %%      update_value/2 and update_metadata/2.
  --spec put(pid(), riakc_obj(), riak_pbc_options()) -> ok | {ok, riakc_obj()} | {error, term()}.
   put(Pid, Obj, Options) ->
  +    put(Pid, Obj, Options, default_timeout(put)).
  +
  +%% @doc Put the metadata/value in the object under bucket/key with options and timeout
  +%%      [{w,2}] sets w=2,
  +%%      [{dw,1}] set dw=1,
  +%%      [{return_body, true}] returns the updated metadata/value
  +%%      Put throws siblings if the riakc_obj contains siblings
  +%%      that have not been resolved by calling select_sibling/2 or 
  +%%      update_value/2 and update_metadata/2.
  +-spec put(pid(), riakc_obj(), riak_pbc_options(), timeout()) -> 
  +                 ok | {ok, riakc_obj()} | {error, term()}.
  +put(Pid, Obj, Options, Timeout) ->
       Content = riakc_pb:pbify_rpbcontent({riakc_obj:get_update_metadata(Obj),
                                            riakc_obj:get_update_value(Obj)}),
       Req = put_options(Options,
  
positive.code: 
  -export([start_link/2,
           start/2,
           ping/1,
           get_client_id/1,
           set_client_id/2,
           get_server_info/1,
           get/3, get/4,
           put/2, put/3,
           delete/3, delete/4,
           list_buckets/1,
           list_keys/2,
           stream_list_keys/2,
           get_bucket/2,
           set_bucket/3,
           mapred/3, mapred/4,
           mapred_stream/4, mapred_stream/5,
           mapred_bucket/3, mapred_bucket/4,
  
negative.code: %% ====================================================================
  %% internal functions
  %% ====================================================================
  
  default_timeout(_Op) ->
      5000.
  
  get_options([], Req) ->
      Req;
  