diff --git a/xfa/fxfa/cxfa_ffdocview.cpp b/xfa/fxfa/cxfa_ffdocview.cpp
index 49edda3..9160398 100644
--- a/xfa/fxfa/cxfa_ffdocview.cpp
+++ b/xfa/fxfa/cxfa_ffdocview.cpp
@@ -171,14 +171,11 @@
 
   LockUpdate();
   while (!m_NewAddedNodes.empty()) {
-    std::vector<CXFA_Node*> nodes = std::move(m_NewAddedNodes);
-    m_NewAddedNodes.clear();
-    for (CXFA_Node* pNode : nodes) {
-      InitCalculate(pNode);
-      InitValidate(pNode);
-      ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Ready, true, true);
-    }
-    // May have created more newly added nodes, try again.
+    CXFA_Node* pNode = m_NewAddedNodes.front();
+    m_NewAddedNodes.pop_front();
+    InitCalculate(pNode);
+    InitValidate(pNode);
+    ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Ready, true, true);
   }
 
   RunSubformIndexChange();
@@ -577,13 +574,10 @@
     return false;
 
   while (!m_ValidateNodes.empty()) {
-    std::vector<CXFA_Node*> nodes = std::move(m_ValidateNodes);
-    m_ValidateNodes.clear();
-    for (CXFA_Node* node : nodes) {
-      if (!node->HasRemovedChildren())
-        node->ProcessValidate(this, 0);
-    }
-    // May have created more nodes to validate, try again.
+    CXFA_Node* node = m_ValidateNodes.front();
+    m_ValidateNodes.pop_front();
+    if (!node->HasRemovedChildren())
+      node->ProcessValidate(this, 0);
   }
   return true;
 }
diff --git a/xfa/fxfa/cxfa_ffdocview.h b/xfa/fxfa/cxfa_ffdocview.h
index cb55eea..1c7ab80 100644
--- a/xfa/fxfa/cxfa_ffdocview.h
+++ b/xfa/fxfa/cxfa_ffdocview.h
@@ -7,6 +7,7 @@
 #ifndef XFA_FXFA_CXFA_FFDOCVIEW_H_
 #define XFA_FXFA_CXFA_FFDOCVIEW_H_
 
+#include <deque>
 #include <memory>
 #include <vector>
 
@@ -119,10 +120,10 @@
   UnownedPtr<CXFA_LayoutProcessor> m_pXFADocLayout;
   UnownedPtr<CXFA_Node> m_pFocusNode;
   UnownedPtr<CXFA_FFWidget> m_pFocusWidget;
-  std::vector<CXFA_Node*> m_ValidateNodes;
+  std::deque<CXFA_Node*> m_ValidateNodes;
   std::vector<CXFA_Node*> m_CalculateNodes;
   std::vector<CXFA_BindItems*> m_BindItems;
-  std::vector<CXFA_Node*> m_NewAddedNodes;
+  std::deque<CXFA_Node*> m_NewAddedNodes;
   std::vector<CXFA_Node*> m_IndexChangedSubforms;
   XFA_DOCVIEW_LAYOUTSTATUS m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_None;
   int32_t m_iLock = 0;
