diff --git a/Runtime/ChromeDevtools/DomNodeWrapper.cs b/Runtime/ChromeDevtools/DomNodeWrapper.cs
index 7f2eeaeb57fa1fa49fc31ace61e5019def056d47..5f367ee351e3f0ec7a6dc6700979c6d0c4960e9a 100644
--- a/Runtime/ChromeDevtools/DomNodeWrapper.cs
+++ b/Runtime/ChromeDevtools/DomNodeWrapper.cs
@@ -137,7 +137,8 @@ namespace bessw.Unity.WebView.ChromeDevTools
             var childNode = createOrUpdateNode(tab, eventData.node.nodeId, eventData.parentNodeId, eventData.node.backendNodeId, eventData.node);
             if (parentNode.Node != null && childNode.Node != null)
             {
-                parentNode.Node.children.Insert(eventData.previousNodeId, childNode.Node);
+                var idx = parentNode.Node.children.FindIndex(node => node.nodeId == eventData.previousNodeId) + 1;
+                parentNode.Node.children.Insert(idx, childNode.Node);
                 parentNode.OnDomChildNodeInserted?.Invoke(eventData);
             } else {
                 throw new InvalidOperationException("ChildNodeInserted event was fired, the node info has not yet been recieved");