diff --git a/Tests/LibWeb/Text/expected/HTML/set-innerHTML-inside-iframe-srcdoc-document.txt b/Tests/LibWeb/Text/expected/HTML/set-innerHTML-inside-iframe-srcdoc-document.txt
new file mode 100644
index 00000000000..5db64a560d5
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/HTML/set-innerHTML-inside-iframe-srcdoc-document.txt
@@ -0,0 +1 @@
+ PASS (Didn't crash)
diff --git a/Tests/LibWeb/Text/input/HTML/set-innerHTML-inside-iframe-srcdoc-document.html b/Tests/LibWeb/Text/input/HTML/set-innerHTML-inside-iframe-srcdoc-document.html
new file mode 100644
index 00000000000..5a979281ec0
--- /dev/null
+++ b/Tests/LibWeb/Text/input/HTML/set-innerHTML-inside-iframe-srcdoc-document.html
@@ -0,0 +1,14 @@
+
+
+
diff --git a/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp b/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp
index 350347461e3..2df5288cea7 100644
--- a/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp
@@ -4273,6 +4273,10 @@ Vector> HTMLParser::parse_html_fragment(DOM::Element& cont
auto temp_document = DOM::Document::create_for_fragment_parsing(context_element.realm());
temp_document->set_document_type(DOM::Document::Type::HTML);
+ // AD-HOC: We set the about base URL of the document to the same as the context element's document.
+ // This is required for Document::parse_url() to work inside iframe srcdoc documents.
+ temp_document->set_about_base_url(context_element.document().about_base_url());
+
// 2. If the node document of the context element is in quirks mode, then let the Document be in quirks mode.
// Otherwise, the node document of the context element is in limited-quirks mode, then let the Document be in limited-quirks mode.
// Otherwise, leave the Document in no-quirks mode.