diff --git a/Tests/LibWeb/Text/expected/DOM/DOMParser-xml-document.txt b/Tests/LibWeb/Text/expected/DOM/DOMParser-xml-document.txt
new file mode 100644
index 0000000000..7b4c1cfe76
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/DOM/DOMParser-xml-document.txt
@@ -0,0 +1 @@
+XMLDocument
diff --git a/Tests/LibWeb/Text/input/DOM/DOMParser-xml-document.html b/Tests/LibWeb/Text/input/DOM/DOMParser-xml-document.html
new file mode 100644
index 0000000000..699feb9a5c
--- /dev/null
+++ b/Tests/LibWeb/Text/input/DOM/DOMParser-xml-document.html
@@ -0,0 +1,8 @@
+
+
diff --git a/Userland/Libraries/LibWeb/HTML/DOMParser.cpp b/Userland/Libraries/LibWeb/HTML/DOMParser.cpp
index 81618082a5..c18582defe 100644
--- a/Userland/Libraries/LibWeb/HTML/DOMParser.cpp
+++ b/Userland/Libraries/LibWeb/HTML/DOMParser.cpp
@@ -6,6 +6,7 @@
#include
#include
+#include
#include
#include
#include
@@ -59,7 +60,7 @@ JS::NonnullGCPtr DOMParser::parse_from_string(StringView string,
parser->run("about:blank"sv);
} else {
// -> Otherwise
- document = DOM::Document::create(realm(), verify_cast(relevant_global_object(*this)).associated_document().url());
+ document = DOM::XMLDocument::create(realm(), verify_cast(relevant_global_object(*this)).associated_document().url());
document->set_content_type(Bindings::idl_enum_to_string(type));
// 1. Create an XML parser parse, associated with document, and with XML scripting support disabled.