diff --git a/components/script/dom/htmloptionelement.rs b/components/script/dom/htmloptionelement.rs
index c88919e968b..c4fa7267301 100644
--- a/components/script/dom/htmloptionelement.rs
+++ b/components/script/dom/htmloptionelement.rs
@@ -197,6 +197,15 @@ impl VirtualMethods for HTMLOptionElement {
}
self.upcast::().check_parent_disabled_state_for_option();
+
+ let node = self.upcast::();
+ if self.Selected() {
+ if let Some(select) = node.ancestors()
+ .filter_map(Root::downcast::)
+ .next() {
+ select.pick_option(self);
+ }
+ }
}
fn unbind_from_tree(&self, tree_in_doc: bool) {