diff --git a/Libraries/LibWeb/HTML/Navigable.cpp b/Libraries/LibWeb/HTML/Navigable.cpp
index 047cf37a293..ed98f6fda9b 100644
--- a/Libraries/LibWeb/HTML/Navigable.cpp
+++ b/Libraries/LibWeb/HTML/Navigable.cpp
@@ -1342,6 +1342,10 @@ WebIDL::ExceptionOr Navigable::populate_session_history_entry_document(
WebIDL::ExceptionOr Navigable::navigate(NavigateParams params)
{
+ // AD-HOC: Not in the spec but subsequent steps will fail if the navigable doesn't have an active window.
+ if (!active_window())
+ return {};
+
auto source_document = params.source_document;
auto exceptions_enabled = params.exceptions_enabled;
auto& active_document = *this->active_document();
diff --git a/Tests/LibWeb/Assets/blank.html b/Tests/LibWeb/Assets/blank.html
new file mode 100644
index 00000000000..530d73115de
--- /dev/null
+++ b/Tests/LibWeb/Assets/blank.html
@@ -0,0 +1 @@
+blank page
diff --git a/Tests/LibWeb/Crash/HTML/navigate-navigable-without-active-window.html b/Tests/LibWeb/Crash/HTML/navigate-navigable-without-active-window.html
new file mode 100644
index 00000000000..c36a9a7c15d
--- /dev/null
+++ b/Tests/LibWeb/Crash/HTML/navigate-navigable-without-active-window.html
@@ -0,0 +1,21 @@
+
+
+
+