diff --git a/Libraries/LibWeb/HTML/HTMLLinkElement.cpp b/Libraries/LibWeb/HTML/HTMLLinkElement.cpp
index f4aa0b7c48c..333776d5ff0 100644
--- a/Libraries/LibWeb/HTML/HTMLLinkElement.cpp
+++ b/Libraries/LibWeb/HTML/HTMLLinkElement.cpp
@@ -124,6 +124,7 @@ void HTMLLinkElement::attribute_changed(FlyString const& name, Optional
Base::attribute_changed(name, old_value, value, namespace_);
// 4.6.7 Link types - https://html.spec.whatwg.org/multipage/links.html#linkTypes
+ auto old_relationship = m_relationship;
if (name == HTML::AttributeNames::rel) {
m_relationship = 0;
// Keywords are always ASCII case-insensitive, and must be compared as such.
@@ -165,8 +166,8 @@ void HTMLLinkElement::attribute_changed(FlyString const& name, Optional
if (
is_browsing_context_connected()
&& (
- // AD-HOC: When the rel attribute changes
- name == AttributeNames::rel ||
+ // AD-HOC: When the link element's type becomes a stylesheet
+ !(old_relationship & Relationship::Stylesheet) ||
// - When the href attribute of the link element of an external resource link that is already browsing-context connected is changed.
name == AttributeNames::href ||
// - When the disabled attribute of the link element of an external resource link that is already browsing-context connected is set, changed, or removed.
diff --git a/Tests/LibWeb/Text/expected/link-changed-rel.txt b/Tests/LibWeb/Text/expected/link-changed-rel.txt
new file mode 100644
index 00000000000..fd7ee7517ba
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/link-changed-rel.txt
@@ -0,0 +1 @@
+Got load event
diff --git a/Tests/LibWeb/Text/input/link-changed-rel.html b/Tests/LibWeb/Text/input/link-changed-rel.html
new file mode 100644
index 00000000000..61f32bc0ae0
--- /dev/null
+++ b/Tests/LibWeb/Text/input/link-changed-rel.html
@@ -0,0 +1,20 @@
+
+
+