anchor.diff:  handle_options(State=#state{options=Options}) ->
       handle_options(Options, State).
   %% @private
  -handle_options([], State) -> State;
  +handle_options([], State) -> 
  +    State;
   handle_options([{returnbody, true}|T], State=#state{w=W}) ->
  -    handle_options(T, State#state{returnbody=true,dw=W});
  -handle_options([{returnbody, V}|T], State) ->
  -    handle_options(T, State#state{returnbody=V});
  +    handle_options(T, State#state{returnbody=true,dw=W, reply_arity=2});
  +handle_options([{returnbody, false}|T], State) ->
  +    case has_postcommit_hooks(element(1,State#state.bkey)) of
  +        true ->
  +            handle_options(T, State#state{returnbody=true});
  +        false ->
  +            handle_options(T, State#state{returnbody=false})
  +    end;
   handle_options([{_,_}|T], State) -> handle_options(T, State).
   
   %% @private
   initialize(timeout, StateData0=#state{robj=RObj0, req_id=ReqId, client=Client,
  -                                      timeout=Timeout, ring=Ring, 
  +                                      timeout=Timeout, ring=Ring, bkey={Bucket,Key},
                                         rclient=RClient, options=Options}) ->
       case invoke_hook(precommit, RClient, update_metadata(RObj0)) of
           fail ->
  
positive.code:         [] -> {error, notfound};
          _ -> riak_object:reconcile(RObjs1,AllowMult)
      end.
  
negative.code:             StartNow = now(),
              TRef = erlang:send_after(Timeout, self(), timeout),
              RealStartTime = riak_core_util:moment(),
              BucketProps = riak_core_bucket:get_bucket(Bucket, Ring),
              DocIdx = riak_core_util:chash_key({Bucket, Key}),
              Msg = {self(), {Bucket,Key}, RObj1, ReqId, RealStartTime, Options},
              N = proplists:get_value(n_val,BucketProps),
  