anchor.diff:      end;
   waiting_vnode_dw({dw, Idx, ResObj, ReqId},
                    StateData=#state{dw=DW, client=Client, replied_dw=Replied0,
  -                                  allowmult=AllowMult, reply_arity=ReplyArity,
  +                                  allowmult=AllowMult, returnbody=ReturnBody,
                                     rclient=RClient, resobjs=ResObjs0}) ->
       Replied = [Idx|Replied0],
       ResObjs = [ResObj|ResObjs0],
       case length(Replied) >= DW of
           true ->
               ReplyObj = merge_robjs(ResObjs, AllowMult),
  -            Reply = case ReplyArity of 1 -> ok; 2 -> {ok, ReplyObj} end,
  +            Reply = case ReturnBody of
  +                        true  -> {ok, ReplyObj};
  +                        false -> ok
  +                    end,
               Client ! {ReqId, Reply},
               invoke_hook(postcommit, RClient, ReplyObj),
               update_stats(StateData),
  
positive.code: %% @private
  initialize(timeout, StateData0=#state{robj=RObj0, req_id=ReqId, client=Client,
                                        timeout=Timeout, ring=Ring, bkey={Bucket,Key}=BKey,
                                        rclient=RClient, options=Options}) ->
      case invoke_hook(precommit, RClient, update_metadata(RObj0)) of
          fail ->
              Client ! {ReqId, {error, precommit_fail}},
  
negative.code:                 tref    :: reference(),
                  ring :: riak_core_ring:riak_core_ring(),
                  startnow :: {pos_integer(), pos_integer(), pos_integer()},
                  vnode_options :: list(),
                  returnbody :: boolean(),
                  resobjs :: list(),
                  allowmult :: boolean()
                 }).
  
  start(ReqId,RObj,W,DW,Timeout,From) ->
      start(ReqId,RObj,W,DW,Timeout,From,[]).
  
  start(ReqId,RObj,W,DW,Timeout,From,Options) ->
      gen_fsm:start(?MODULE, [ReqId,RObj,W,DW,Timeout,From,Options], []).
  
  %% @private
  init([ReqId,RObj0,W0,DW0,Timeout,Client,Options0]) ->
      Options = flatten_options(proplists:unfold(Options0 ++ ?DEFAULT_OPTS), []),
      {ok,Ring} = riak_core_ring_manager:get_my_ring(),
      BucketProps = riak_core_bucket:get_bucket(riak_object:bucket(RObj0), Ring),
      N = proplists:get_value(n_val,BucketProps),
  