diff --git a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp
index 46a2af4..ab6f155 100644
--- a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp
+++ b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp
@@ -551,16 +551,9 @@
     bool& bSelfMatch,
     XFA_ATTRIBUTEENUM& eBindMatch,
     bool bUpLevel) {
-  bool bOwnIterator = false;
-  if (!pIterator) {
-    bOwnIterator = true;
-    pIterator = new CXFA_NodeIteratorTemplate<
-        CXFA_Node, CXFA_TraverseStrategy_XFAContainerNode>(pTemplateNode);
-  }
-
   CXFA_Node* pResult = nullptr;
-  for (CXFA_Node* pCurTemplateNode = pIterator->GetCurrent();
-       pCurTemplateNode;) {
+  CXFA_Node* pCurTemplateNode = pIterator->GetCurrent();
+  while (pCurTemplateNode) {
     XFA_Element eMatchNodeType;
     switch (pCurTemplateNode->GetElementType()) {
       case XFA_Element::Subform:
@@ -650,8 +643,6 @@
       bSelfMatch = true;
     break;
   }
-  if (bOwnIterator)
-    delete pIterator;
   return pResult;
 }
 
@@ -823,9 +814,12 @@
             bSelfMatch = false;
             eBindMatch = XFA_ATTRIBUTEENUM_None;
             if (eRelation != XFA_ATTRIBUTEENUM_Ordered) {
+              CXFA_NodeIteratorTemplate<CXFA_Node,
+                                        CXFA_TraverseStrategy_XFAContainerNode>
+                  sChildIter(pTemplateChild);
               CXFA_Node* pDataMatch = FindMatchingDataNode(
                   pDocument, pTemplateChild, pDataScope, bAccessedDataDOM,
-                  false, nullptr, bSelfMatch, eBindMatch, true);
+                  false, &sChildIter, bSelfMatch, eBindMatch, true);
               if (pDataMatch) {
                 RecurseRecord sNewRecord = {pTemplateChild, pDataMatch};
                 if (bSelfMatch)
@@ -989,9 +983,11 @@
     bool bAccessedDataDOM = false;
     bool bSelfMatch = false;
     XFA_ATTRIBUTEENUM eBindMatch;
+    CXFA_NodeIteratorTemplate<CXFA_Node, CXFA_TraverseStrategy_XFAContainerNode>
+        sNodeIter(pTemplateNode);
     CXFA_Node* pDataNode = FindMatchingDataNode(
-        pDocument, pTemplateNode, pDataScope, bAccessedDataDOM, true, nullptr,
-        bSelfMatch, eBindMatch, bUpLevel);
+        pDocument, pTemplateNode, pDataScope, bAccessedDataDOM, true,
+        &sNodeIter, bSelfMatch, eBindMatch, bUpLevel);
     if (pDataNode)
       CreateDataBinding(pFieldNode, pDataNode, true);
   } else {
