anchor.diff:  
           AllowMult = false,
   
  +        ModDef = {<<"mod">>, atom_to_binary(?MODULE, latin1)},
           PrecommitProps = case Precommit of
                                [] ->
                                    [];
                                _ ->
  -                                 ModDef = {<<"mod">>, atom_to_binary(?MODULE, latin1)},
  -                                 HookStruct = [{struct, [ModDef,
  +                                 [{precommit, [{struct, [ModDef,
                                                            {<<"fun">>,
                                                             atom_to_binary(Hook,latin1)}]} || 
  -                                                  Hook <- Precommit],
  -                                 [{precommit, HookStruct}]
  +                                                  Hook <- Precommit]}]
                            end,
  -                                 
  +        PostcommitProps = case Postcommit of
  +                              [] ->
  +                                  [];
  +                              _ ->
  +                                  [{postcommit, [{struct, [ModDef,
  +                                                           {<<"fun">>,
  +                                                            atom_to_binary(Hook,latin1)}]} || 
  +                                                    Hook <- Postcommit]}]
  +                          end,
  +        
           application:set_env(riak_core,
                               default_bucket_props,
                               [{n_val, N},
                                {allow_mult, AllowMult} |
                                PrecommitProps ++
  +                             PostcommitProps ++
                                ?DEFAULT_BUCKET_PROPS]),
   
           {ok, PutPid} = riak_kv_put_fsm:start(?REQ_ID,
  
positive.code:     frequency([{5, []},
                 {1, list(precommit_hook())}]).
  
  
  prop_basic_put() ->
      %% ?FORALL({WSeed,DWSeed},
      ?FORALL({WSeed,DWSeed,NQdiff,
               Objects,ObjectIdxSeed,
               _PartVals,VPutResp,NodeStatus0,Options,
               Precommit}, 
              {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()},
      begin
          N = length(VPutResp),
          W = (WSeed rem N) + 1, %% W from 1..N
  
negative.code:                              false ->
                                   {DW, noreply}
                           end,
      EffDW = case Postcommit of
                  [] ->
                      EffDW1;
                  _ ->
                      erlang:max(1, EffDW1)
              end,
      
      case {H, N, W, EffDW} of
          %% Workaround for bug transitioning from awaiting_w to awaiting_dw
          {[{w,_,_},{dw,_,_},{w,_,_},{fail,_,_}], 2, 2, 1} ->
  