anchor.diff:      Locked = get_all_locks(Service, Type, Index, self()),
       build_or_rehash(Self, Locked, Type, State).
   
  -build_or_rehash(Self, Locked, Type, #state{master=Master, service=Service,
  +build_or_rehash(Self, Locked, Type, #state{vnode=VMode, service=Service,
                                              index=Index, trees=Trees}) ->
       case {Locked, Type} of
           {true, build} ->
               lager:info("[AAE:~s] Starting tree build: ~p", [Service, Index]),
  -            fold_keys(Master, Index, Self, has_index_tree(Trees)),
  +            fold_keys(VNode, Index, Self, has_index_tree(Trees)),
               lager:info("[AAE:~s] Finished tree build: ~p", [Service, Index]),
               gen_server:cast(Self, build_finished);
           {true, rehash} ->
  
positive.code: %% key/hash pair will be ignored.
  %% If `HasIndexTree` is true, also update the index spec tree.
  -spec fold_keys(atom(), index(), pid(), boolean()) -> ok.
  fold_keys(Master, Partition, Tree, HasIndexTree) ->
      FoldFun = fold_fun(Tree, HasIndexTree),
      Req = riak_core_util:make_fold_req(FoldFun,
                                         0, false, 
                                         [aae_reconstruction,
  
negative.code: %% @doc Generate the folding function
  %% for a riak fold_req
  -spec fold_fun(pid(), boolean()) -> fun().
  fold_fun(VNode, Tree, _HasIndexTree = false) ->
      ObjectFoldFun = object_fold_fun(VNode, Tree),
      {Limit, Wait} = get_build_throttle(),
      fun(BKey, RObj, Acc) ->
              BinBKey = term_to_binary(BKey),
  