diff --git a/components/script/dom/htmloptionelement.rs b/components/script/dom/htmloptionelement.rs
index 3aff70c70f7..3e6019384ab 100644
--- a/components/script/dom/htmloptionelement.rs
+++ b/components/script/dom/htmloptionelement.rs
@@ -210,6 +210,12 @@ impl VirtualMethods for HTMLOptionElement {
fn unbind_from_tree(&self, context: &UnbindContext) {
self.super_type().unwrap().unbind_from_tree(context);
+ if let Some(select) = context.parent.inclusive_ancestors()
+ .filter_map(Root::downcast::)
+ .next() {
+ select.ask_for_reset();
+ }
+
let node = self.upcast::();
let el = self.upcast::();
if node.GetParentNode().is_some() {
diff --git a/tests/wpt/metadata/html/semantics/forms/the-select-element/select-ask-for-reset.html.ini b/tests/wpt/metadata/html/semantics/forms/the-select-element/select-ask-for-reset.html.ini
deleted file mode 100644
index dd109c994dd..00000000000
--- a/tests/wpt/metadata/html/semantics/forms/the-select-element/select-ask-for-reset.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[select-ask-for-reset.html]
- type: testharness
- [ask for reset on node remove, non multiple.]
- expected: FAIL
-