anchor.diff:                                           {oicount, OtherItemsCount}],
                                    kv_list = []};
           false ->
  +            % tell the initiator to create its struct first, and then build ours
  +            % (at this stage, we do not have any data in the merkle tree yet!)
  +            DBItems = State#rr_recon_state.kv_list,
               MerkleI = merkle_tree:get_interval(MySyncStruct),
               MerkleV = merkle_tree:get_branch_factor(MySyncStruct),
               MerkleB = merkle_tree:get_bucket_size(MySyncStruct),
               P1ETotal = get_p1e(),
               P1ETotal2 = calc_n_subparts_p1e(2, P1ETotal),
  -            ItemCount = merkle_tree:get_item_count(MySyncStruct),
  +            ItemCount = erlang:length(DBItems),
   %%             log:pal("merkle [ ~p ] Inner/Leaf/Items: ~p, EmptyLeaves: ~B",
   %%                     [self(), merkle_tree:size_detail(MySyncStruct),
   %%                      length([ok || L <- merkle_tree:get_leaves(MySyncStruct),
  
positive.code:             send(DestRRPid, {?IIF(SID =:= null, start_recon, continue_recon),
                               comm:make_global(OwnerL), SID,
                               {start_recon, merkle_tree, SyncParams}}),
              State#rr_recon_state{stats = Stats1, params = MySyncParams,
                                   misc = [{p1e, P1ETotal2},
                                           {all_leaf_p1e, P1ETotal2},
                                           {icount, ItemCount}],
  
negative.code:                         item_count = MaxItems, p1e = P1E};
  build_recon_struct(merkle_tree, I, DBItems, Params) ->
      ?DBG_ASSERT(not intervals:is_empty(I)),
      case Params of
          {} ->
              % merkle_tree only at non-initiator!
              MOpts = [{branch_factor, get_merkle_branch_factor()},
                       {bucket_size, get_merkle_bucket_size()}],
              % do not build the real tree here - build during begin_sync so that
              % the initiator can start creating its struct earlier and in parallel
              merkle_tree:new(I, [{keep_bucket, true} | MOpts]);
          #merkle_params{branch_factor = BranchFactor,
                         bucket_size = BucketSize} ->
              % merkle_tree only at initiator!
              MOpts = [{branch_factor, BranchFactor},
                       {bucket_size, BucketSize}],
              % build now
              merkle_tree:new(I, DBItems, [{keep_bucket, true} | MOpts]);
          #art_recon_struct{branch_factor = BranchFactor,
                            bucket_size = BucketSize} ->
              MOpts = [{branch_factor, BranchFactor},
                       {bucket_size, BucketSize},
                       {leaf_hf, fun art:merkle_leaf_hf/2}],
              merkle_tree:new(I, DBItems, [{keep_bucket, true} | MOpts])
      end;
  build_recon_struct(art, I, DBItems, _Params = {}) ->
      ?DBG_ASSERT(not intervals:is_empty(I)),
      BranchFactor = get_merkle_branch_factor(),
  