diff --git a/testsrc/jstests/577141.jstest b/testsrc/jstests/577141.jstest
new file mode 100644
index 0000000000..b3fc843597
--- /dev/null
+++ b/testsrc/jstests/577141.jstest
@@ -0,0 +1,4 @@
+var ns = new Namespace( "dc", "http://purl.org/dc/elements/1.1" );
+var x = new XML( "" );
+x.setNamespace( ns );
+"success";
diff --git a/xmlimplsrc/build.xml b/xmlimplsrc/build.xml
index 15535b85e9..8f9276ef12 100644
--- a/xmlimplsrc/build.xml
+++ b/xmlimplsrc/build.xml
@@ -147,7 +147,7 @@
@@ -157,8 +157,8 @@
-
-
+
+
diff --git a/xmlimplsrc/org/mozilla/javascript/xmlimpl/QName.java b/xmlimplsrc/org/mozilla/javascript/xmlimpl/QName.java
index d4cb149451..7c124c8b87 100644
--- a/xmlimplsrc/org/mozilla/javascript/xmlimpl/QName.java
+++ b/xmlimplsrc/org/mozilla/javascript/xmlimpl/QName.java
@@ -292,7 +292,7 @@ QName newQName(XMLLibImpl lib, String q_uri, String q_localName, String q_prefix
}
XmlNode.Namespace ns = null;
if (q_prefix != null) {
- ns = XmlNode.Namespace.create(q_uri, q_prefix);
+ ns = XmlNode.Namespace.create(q_prefix, q_uri);
} else if (q_uri != null) {
ns = XmlNode.Namespace.create(q_uri);
} else {