anchor.diff:                  true ->
                       case merkle_tree:is_leaf_hash(Hash) of
                           true ->
  -                            % note: we could alternatively start the resolve here
  -                            %       instead of on the initiator, but we have to send
  -                            %       the tag anyway and the initiator starts all the
  -                            %       other resolves, so it is better to have this one
  -                            %       there as well.
  -                            p_check_node(TK, TN, [?recon_fail_leaf | AccR], AccN, AccRes);
  +                            p_check_node(TK, TN, [?recon_fail_stop | AccR], AccN, [Node | AccRes]);
                           false ->
                               NodeHash = merkle_tree:get_hash(Node),
  -                            p_check_node(TK, TN, [{?recon_fail_leaf, NodeHash} | AccR], AccN, AccRes)
  +                            p_check_node(TK, TN, [{NodeHash} | AccR], AccN, AccRes)
                       end;
                   false ->
  -                    Childs = merkle_tree:get_childs(Node),
  -                    p_check_node(TK, TN, [?recon_fail_inner | AccR], [Childs | AccN], AccRes)
  +                    case merkle_tree:is_leaf_hash(Hash) of
  +                        true ->
  +                            ToResolve = merkle_get_sync_leaves([Node], Hash, AccRes),
  +                            p_check_node(TK, TN, [?recon_fail_stop | AccR], AccN, ToResolve);
  +                        false ->
  +                            Childs = merkle_tree:get_childs(Node),
  +                            p_check_node(TK, TN, [?recon_fail_cont | AccR], [Childs | AccN], AccRes)
  +                    end
               end
       end.
   
  
positive.code: -type state() :: #rr_recon_state{}.
  
  -define(recon_ok,         1).
  -define(recon_fail_leaf,  2).
  -define(recon_fail_inner, 3).
  
  -type merkle_cmp_result()  :: ?recon_ok |
                                ?recon_fail_leaf |
                                {?recon_fail_leaf, merkle_tree:mt_node_key()} |
                                ?recon_fail_inner.
  -type merkle_cmp_request() ::
            merkle_tree:mt_node_key() |
            {NodesToOmit::pos_integer(), LeafHash::merkle_tree:mt_node_key()}.
  
  -type request() ::
      {start, method(), DestKey::recon_dest()} |
  
negative.code:       is_subtype(NodeList, [merkle_tree:mt_node()]).
  p_check_node([], [], AccR, AccN, AccRes) ->
      {lists:reverse(AccR), lists:append(lists:reverse(AccN)), AccRes};
  p_check_node([Hash | TK], [Node | TN], AccR, AccN, AccRes) ->
      case merkle_tree:is_hash_equal(Node, Hash) of
          true ->
  