diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs
index 3ac4d491513..3de2f11e2e6 100644
--- a/components/script/dom/htmlcollection.rs
+++ b/components/script/dom/htmlcollection.rs
@@ -119,7 +119,10 @@ impl HTMLCollection {
namespace_filter: Option
}
impl CollectionFilter for TagNameNSFilter {
- fn filter(&self, elem: JSRef, _root: JSRef) -> bool {
+ fn filter(&self, elem: JSRef, root: JSRef) -> bool {
+ if NodeCast::from_ref(elem) == root {
+ return false
+ }
let ns_match = match self.namespace_filter {
Some(ref namespace) => {
*elem.namespace() == *namespace
diff --git a/tests/wpt/metadata/dom/nodes/Element-getElementsByTagNameNS.html.ini b/tests/wpt/metadata/dom/nodes/Element-getElementsByTagNameNS.html.ini
index 4221c256afc..9cfcb9a43cc 100644
--- a/tests/wpt/metadata/dom/nodes/Element-getElementsByTagNameNS.html.ini
+++ b/tests/wpt/metadata/dom/nodes/Element-getElementsByTagNameNS.html.ini
@@ -5,10 +5,3 @@
[getElementsByTagNameNS(\'*\', \'*\')]
expected: FAIL
-
- [Matching the context object (wildcard namespace)]
- expected: FAIL
-
- [Matching the context object (specific namespace)]
- expected: FAIL
-