diff --git a/tests/tests/swfs/avm1/xml_child_nodes_edge_cases/output.txt b/tests/tests/swfs/avm1/xml_child_nodes_edge_cases/output.txt
new file mode 100644
index 000000000000..8f4a70cc244a
--- /dev/null
+++ b/tests/tests/swfs/avm1/xml_child_nodes_edge_cases/output.txt
@@ -0,0 +1,4 @@
+,
+,,
+,,,
+,,,
diff --git a/tests/tests/swfs/avm1/xml_child_nodes_edge_cases/test.as b/tests/tests/swfs/avm1/xml_child_nodes_edge_cases/test.as
new file mode 100644
index 000000000000..04ddace07bf8
--- /dev/null
+++ b/tests/tests/swfs/avm1/xml_child_nodes_edge_cases/test.as
@@ -0,0 +1,9 @@
+var my_xml = new XML("");
+var a = my_xml.firstChild.childNodes;
+trace(a);
+my_xml.firstChild.appendChild(my_xml.createElement("c"))
+trace(a);
+a.push(my_xml.createElement("d"))
+trace(a);
+my_xml.firstChild.appendChild(my_xml.createElement("e"))
+trace(a);
\ No newline at end of file
diff --git a/tests/tests/swfs/avm1/xml_child_nodes_edge_cases/test.swf b/tests/tests/swfs/avm1/xml_child_nodes_edge_cases/test.swf
new file mode 100644
index 000000000000..54ff1db3c8fe
Binary files /dev/null and b/tests/tests/swfs/avm1/xml_child_nodes_edge_cases/test.swf differ
diff --git a/tests/tests/swfs/avm1/xml_child_nodes_edge_cases/test.toml b/tests/tests/swfs/avm1/xml_child_nodes_edge_cases/test.toml
new file mode 100644
index 000000000000..dbee897f5863
--- /dev/null
+++ b/tests/tests/swfs/avm1/xml_child_nodes_edge_cases/test.toml
@@ -0,0 +1 @@
+num_frames = 1