diff --git a/tests/tests/swfs/avm2/xml_namespace_methods/Test.as b/tests/tests/swfs/avm2/xml_namespace_methods/Test.as
new file mode 100644
index 000000000000..e2d87abd288f
--- /dev/null
+++ b/tests/tests/swfs/avm2/xml_namespace_methods/Test.as
@@ -0,0 +1,81 @@
+package {
+ import flash.display.MovieClip;
+ import flash.xml.XMLNode;
+
+
+ public class Test extends MovieClip {
+
+
+ public function Test() {
+ XML.prettyPrinting = false;
+
+ var xml: XML =
+
+
+
+
+
+
+
+
+
+
+ ;
+
+ dump(xml);
+
+ trace("");
+ trace("top.addNamespace(new Namespace(\"topns\", \"https://example.org/top/but/replaced\"))");
+ xml.outer[0].top[0].addNamespace(new Namespace("topns", "https://example.org/top/but/replaced"));
+ trace("top.addNamespace(new Namespace(\"middlens\", \"https://example.org/middle/but/replaced\"))");
+ xml.outer[0].top[0].addNamespace(new Namespace("middlens", "https://example.org/middle/but/replaced"));
+ trace("top.addNamespace(new Namespace(\"newns\", \"https://example.org/new\"))");
+ xml.outer[0].top[0].addNamespace(new Namespace("newns", "https://example.org/new"));
+ trace("top.addNamespace(new Namespace(undefined, \"https://example.org/undefined\"))");
+ xml.outer[0].top[0].addNamespace(new Namespace(undefined, "https://example.org/undefined"));
+
+ trace("");
+ dump(xml);
+ trace("");
+ trace("");
+ trace(xml.toString());
+ }
+
+ function dump(node: XML) {
+ trace("// " + node.localName() + " namespace()");
+ traceNs(node.namespace());
+ trace("");
+
+ trace("// " + node.localName() + " inScopeNamespaces()");
+ for each (var ns in node.inScopeNamespaces()) {
+ traceNs(ns);
+ }
+ trace("");
+
+ trace("// " + node.localName() + " inScopeNamespaces()");
+ for each (var ns in node.inScopeNamespaces()) {
+ traceNs(ns);
+ }
+ trace("");
+
+ trace("// " + node.localName() + " namespaceDeclarations()");
+ for each (var ns in node.namespaceDeclarations()) {
+ traceNs(ns);
+ }
+ trace("");
+
+ trace("// " + node.localName() + " namespace(\"middlens\")");
+ trace(node.namespace("middlens"));
+ trace("");
+
+ for each (var child in node.children()) {
+ dump(child);
+ }
+ }
+
+ function traceNs(ns: Namespace) {
+ trace(ns.prefix + " = " + ns.uri);
+ }
+ }
+
+}
diff --git a/tests/tests/swfs/avm2/xml_namespace_methods/output.txt b/tests/tests/swfs/avm2/xml_namespace_methods/output.txt
new file mode 100644
index 000000000000..e8c03bf4207c
--- /dev/null
+++ b/tests/tests/swfs/avm2/xml_namespace_methods/output.txt
@@ -0,0 +1,245 @@
+// root namespace()
+ =
+
+// root inScopeNamespaces()
+ =
+
+// root inScopeNamespaces()
+ =
+
+// root namespaceDeclarations()
+
+// root namespace("middlens")
+undefined
+
+// outer namespace()
+ =
+
+// outer inScopeNamespaces()
+ =
+
+// outer inScopeNamespaces()
+ =
+
+// outer namespaceDeclarations()
+
+// outer namespace("middlens")
+undefined
+
+// top namespace()
+ =
+
+// top inScopeNamespaces()
+topns = https://example.org/top
+
+// top inScopeNamespaces()
+topns = https://example.org/top
+
+// top namespaceDeclarations()
+topns = https://example.org/top
+
+// top namespace("middlens")
+undefined
+
+// middle namespace()
+ =
+
+// middle inScopeNamespaces()
+middlens = https://example.org/middle
+topns = https://example.org/top
+
+// middle inScopeNamespaces()
+middlens = https://example.org/middle
+topns = https://example.org/top
+
+// middle namespaceDeclarations()
+middlens = https://example.org/middle
+
+// middle namespace("middlens")
+https://example.org/middle
+
+// bottom namespace()
+ =
+
+// bottom inScopeNamespaces()
+bottomns = https://example.org/bottom
+middlens = https://example.org/middle
+topns = https://example.org/top
+
+// bottom inScopeNamespaces()
+bottomns = https://example.org/bottom
+middlens = https://example.org/middle
+topns = https://example.org/top
+
+// bottom namespaceDeclarations()
+bottomns = https://example.org/bottom
+
+// bottom namespace("middlens")
+https://example.org/middle
+
+// namespacedTopnsSibling namespace()
+topns = https://example.org/top
+
+// namespacedTopnsSibling inScopeNamespaces()
+middlens = https://example.org/middle
+topns = https://example.org/top
+
+// namespacedTopnsSibling inScopeNamespaces()
+middlens = https://example.org/middle
+topns = https://example.org/top
+
+// namespacedTopnsSibling namespaceDeclarations()
+
+// namespacedTopnsSibling namespace("middlens")
+https://example.org/middle
+
+// namespacedMiddlensSibling namespace()
+middlens = https://example.org/middle
+
+// namespacedMiddlensSibling inScopeNamespaces()
+middlens = https://example.org/middle
+topns = https://example.org/top
+
+// namespacedMiddlensSibling inScopeNamespaces()
+middlens = https://example.org/middle
+topns = https://example.org/top
+
+// namespacedMiddlensSibling namespaceDeclarations()
+
+// namespacedMiddlensSibling namespace("middlens")
+https://example.org/middle
+
+
+top.addNamespace(new Namespace("topns", "https://example.org/top/but/replaced"))
+top.addNamespace(new Namespace("middlens", "https://example.org/middle/but/replaced"))
+top.addNamespace(new Namespace("newns", "https://example.org/new"))
+top.addNamespace(new Namespace(undefined, "https://example.org/undefined"))
+
+// root namespace()
+ =
+
+// root inScopeNamespaces()
+ =
+
+// root inScopeNamespaces()
+ =
+
+// root namespaceDeclarations()
+
+// root namespace("middlens")
+undefined
+
+// outer namespace()
+ =
+
+// outer inScopeNamespaces()
+ =
+
+// outer inScopeNamespaces()
+ =
+
+// outer namespaceDeclarations()
+
+// outer namespace("middlens")
+undefined
+
+// top namespace()
+ =
+
+// top inScopeNamespaces()
+topns = https://example.org/top/but/replaced
+middlens = https://example.org/middle/but/replaced
+newns = https://example.org/new
+
+// top inScopeNamespaces()
+topns = https://example.org/top/but/replaced
+middlens = https://example.org/middle/but/replaced
+newns = https://example.org/new
+
+// top namespaceDeclarations()
+topns = https://example.org/top/but/replaced
+middlens = https://example.org/middle/but/replaced
+newns = https://example.org/new
+
+// top namespace("middlens")
+https://example.org/middle/but/replaced
+
+// middle namespace()
+ =
+
+// middle inScopeNamespaces()
+middlens = https://example.org/middle
+topns = https://example.org/top/but/replaced
+newns = https://example.org/new
+
+// middle inScopeNamespaces()
+middlens = https://example.org/middle
+topns = https://example.org/top/but/replaced
+newns = https://example.org/new
+
+// middle namespaceDeclarations()
+middlens = https://example.org/middle
+
+// middle namespace("middlens")
+https://example.org/middle
+
+// bottom namespace()
+ =
+
+// bottom inScopeNamespaces()
+bottomns = https://example.org/bottom
+middlens = https://example.org/middle
+topns = https://example.org/top/but/replaced
+newns = https://example.org/new
+
+// bottom inScopeNamespaces()
+bottomns = https://example.org/bottom
+middlens = https://example.org/middle
+topns = https://example.org/top/but/replaced
+newns = https://example.org/new
+
+// bottom namespaceDeclarations()
+bottomns = https://example.org/bottom
+
+// bottom namespace("middlens")
+https://example.org/middle
+
+// namespacedTopnsSibling namespace()
+undefined = https://example.org/top
+
+// namespacedTopnsSibling inScopeNamespaces()
+middlens = https://example.org/middle
+topns = https://example.org/top/but/replaced
+newns = https://example.org/new
+
+// namespacedTopnsSibling inScopeNamespaces()
+middlens = https://example.org/middle
+topns = https://example.org/top/but/replaced
+newns = https://example.org/new
+
+// namespacedTopnsSibling namespaceDeclarations()
+
+// namespacedTopnsSibling namespace("middlens")
+https://example.org/middle
+
+// namespacedMiddlensSibling namespace()
+middlens = https://example.org/middle
+
+// namespacedMiddlensSibling inScopeNamespaces()
+middlens = https://example.org/middle
+topns = https://example.org/top/but/replaced
+newns = https://example.org/new
+
+// namespacedMiddlensSibling inScopeNamespaces()
+middlens = https://example.org/middle
+topns = https://example.org/top/but/replaced
+newns = https://example.org/new
+
+// namespacedMiddlensSibling namespaceDeclarations()
+
+// namespacedMiddlensSibling namespace("middlens")
+https://example.org/middle
+
+
+
+
diff --git a/tests/tests/swfs/avm2/xml_namespace_methods/test.fla b/tests/tests/swfs/avm2/xml_namespace_methods/test.fla
new file mode 100644
index 000000000000..747bceda79ec
Binary files /dev/null and b/tests/tests/swfs/avm2/xml_namespace_methods/test.fla differ
diff --git a/tests/tests/swfs/avm2/xml_namespace_methods/test.swf b/tests/tests/swfs/avm2/xml_namespace_methods/test.swf
new file mode 100644
index 000000000000..7c128486ccf3
Binary files /dev/null and b/tests/tests/swfs/avm2/xml_namespace_methods/test.swf differ
diff --git a/tests/tests/swfs/avm2/xml_namespace_methods/test.toml b/tests/tests/swfs/avm2/xml_namespace_methods/test.toml
new file mode 100644
index 000000000000..2708ada71a1d
--- /dev/null
+++ b/tests/tests/swfs/avm2/xml_namespace_methods/test.toml
@@ -0,0 +1 @@
+num_frames = 1
\ No newline at end of file