anchor.diff:      frequency([{5, []},
                  {1, list(precommit_hook())}]).
   
  +postcommit_hook() ->
  +    frequency([{17, postcommit_ok},
  +               {1,  postcommit_crash}]).
  +                
  +postcommit_hooks() ->
  +    frequency([{5, []},
  +               {1, list(postcommit_hook())}]).
  +
   
   prop_basic_put() ->
       %% ?FORALL({WSeed,DWSeed},
       ?FORALL({WSeed,DWSeed,NQdiff,
                Objects,ObjectIdxSeed,
                _PartVals,VPutResp,NodeStatus0,Options,
  -             Precommit}, 
  +             Precommit, Postcommit}, 
               {fsm_eqc_util:largenat(),fsm_eqc_util:largenat(),choose(0,4096),
                fsm_eqc_util:riak_objects(), fsm_eqc_util:largenat(),
                fsm_eqc_util:partvals(),vnodeputresps(),
                fsm_eqc_util:some_up_node_status(10),options(),
  -             precommit_hooks()},
  +             precommit_hooks(), postcommit_hooks()},
       begin
           N = length(VPutResp),
           W = (WSeed rem N) + 1, %% W from 1..N
  
positive.code:         false -> {newobj, ResObj}
      end.
  
  expect(H, N, W, DW, AllowMult, Options, Precommit) ->
      {EffDW, ReturnObj} = case proplists:get_value(returnbody, Options, false) of
                               true ->
                                   %% If returnbody is set, DW is set to a minimum
                                   %% of 1 to make the vnode return a response
  
negative.code:         Res = fsm_eqc_util:wait_for_req_id(?REQ_ID),
          H = get_fsm_qc_vnode_master:get_reply_history(),
  
          Expected = expect(H, N, W, DW, AllowMult, Options, Precommit, Postcommit),
          ?WHENFAIL(
             begin
                 io:format(user, "NodeStatus: ~p\n", [NodeStatus]),
  