diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs
index c07af986135..3ac4d491513 100644
--- a/components/script/dom/htmlcollection.rs
+++ b/components/script/dom/htmlcollection.rs
@@ -85,7 +85,10 @@ impl HTMLCollection {
ascii_lower_tag: Atom,
}
impl CollectionFilter for TagNameFilter {
- fn filter(&self, elem: JSRef, _root: JSRef) -> bool {
+ fn filter(&self, elem: JSRef, root: JSRef) -> bool {
+ if NodeCast::from_ref(elem) == root {
+ return false
+ }
if elem.html_element_in_html_document() {
*elem.local_name() == self.ascii_lower_tag
} else {
diff --git a/tests/wpt/metadata/dom/nodes/Element-getElementsByTagName.html.ini b/tests/wpt/metadata/dom/nodes/Element-getElementsByTagName.html.ini
index f6617adb8c2..ab6270595ec 100644
--- a/tests/wpt/metadata/dom/nodes/Element-getElementsByTagName.html.ini
+++ b/tests/wpt/metadata/dom/nodes/Element-getElementsByTagName.html.ini
@@ -8,7 +8,3 @@
[getElementsByTagName(\'*\')]
expected: FAIL
-
- [Matching the context object]
- expected: FAIL
-