anchor.diff:  %% merkle tree sync messages
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
  -on({?check_nodes, SenderPid, ToCheck, OtherItemsCount},
  +on({?check_nodes, SenderPid, ToCheck, OtherItemsCount, OtherMaxItemsCount},
      State = #rr_recon_state{params = #merkle_params{exp_delta = ExpDelta},
                              misc = [{fail_rate_target_per_node, LastFRPerNode},
                                      {fail_rate_target_phase1, FR_p1},
                                      {prev_used_fr, PrevUsedFr},
  -                                   {icount, MyItemCount}]}) ->
  +                                   {icount, MyMaxItemCount},
  +                                   {total_icount, MyItemCount}]}) ->
       % this is the first check_nodes message from the initiator and we finally
       % learn about the exact number of items to synchronise with
       MaxAffectedItems = calc_max_different_items_total(
                            MyItemCount, OtherItemsCount, ExpDelta),
  -    on({?check_nodes, ToCheck, OtherItemsCount},
  +    on({?check_nodes, ToCheck, OtherMaxItemsCount},
          State#rr_recon_state{dest_recon_pid = SenderPid,
                               misc = [{max_affected_items, MaxAffectedItems},
                                       {fail_rate_target_per_node, LastFRPerNode},
                                       {fail_rate_target_phase1, FR_p1},
                                       {prev_used_fr, PrevUsedFr},
  -                                    {icount, MyItemCount}]});
  +                                    {icount, MyMaxItemCount}]});
   
   on({?check_nodes, ToCheck0, OtherMaxItemsCount},
      State = #rr_recon_state{stage = reconciliation,    initiator = false,
  
positive.code:                                   bucket_size = MerkleB,
                                    num_trees = NumTrees,
                                    fail_rate = FRTotal,
                                    ni_item_count = ItemCount},
      SyncParams = MySyncParams#merkle_params{reconPid = comm:this()},
      SID = rr_recon_stats:get(session_id, Stats),
      send(DestRRPid, {continue_recon, comm:make_global(OwnerL), SID,
  
negative.code:          num_trees      = ?required(merkle_param, num_trees)      :: pos_integer(),
           bucket_size    = ?required(merkle_param, bucket_size)    :: pos_integer(),
           fail_rate      = ?required(merkle_param, fail_rate)      :: float(),
           ni_item_count  = ?required(merkle_param, ni_item_count)  :: non_neg_integer(),
           ni_max_ic      = ?required(merkle_param, ni_max_ic)      :: non_neg_integer()
          }).
  
  -record(art_recon_struct,
  