diff --git a/Tests/LibWeb/Text/expected/DOM/domparser-parsefromstring-xml-empty-pubid.txt b/Tests/LibWeb/Text/expected/DOM/domparser-parsefromstring-xml-empty-pubid.txt
new file mode 100644
index 00000000000..53cdf1e9393
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/DOM/domparser-parsefromstring-xml-empty-pubid.txt
@@ -0,0 +1 @@
+PASSED
diff --git a/Tests/LibWeb/Text/input/DOM/domparser-parsefromstring-xml-empty-pubid.html b/Tests/LibWeb/Text/input/DOM/domparser-parsefromstring-xml-empty-pubid.html
new file mode 100644
index 00000000000..97d6fe0863a
--- /dev/null
+++ b/Tests/LibWeb/Text/input/DOM/domparser-parsefromstring-xml-empty-pubid.html
@@ -0,0 +1,9 @@
+
+
diff --git a/Userland/Libraries/LibXML/Parser/Parser.cpp b/Userland/Libraries/LibXML/Parser/Parser.cpp
index 62a40905747..9a6884f8848 100644
--- a/Userland/Libraries/LibXML/Parser/Parser.cpp
+++ b/Userland/Libraries/LibXML/Parser/Parser.cpp
@@ -1544,7 +1544,8 @@ ErrorOr Parser::parse_public_id_literal()
[q = quote[0]](auto x) {
return (q == '\'' ? x != '\'' : true) && s_public_id_characters.contains(x);
},
- "a PubidChar"sv));
+ "a PubidChar"sv,
+ true));
TRY(expect(quote));
rollback.disarm();