diff --git a/Tests/LibWeb/Text/expected/Messaging/MessagePort-start-after-close.txt b/Tests/LibWeb/Text/expected/Messaging/MessagePort-start-after-close.txt
new file mode 100644
index 0000000000..aaecaf93c4
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/Messaging/MessagePort-start-after-close.txt
@@ -0,0 +1 @@
+PASS (didn't crash)
diff --git a/Tests/LibWeb/Text/input/Messaging/MessagePort-start-after-close.html b/Tests/LibWeb/Text/input/Messaging/MessagePort-start-after-close.html
new file mode 100644
index 0000000000..4c36d3af5e
--- /dev/null
+++ b/Tests/LibWeb/Text/input/Messaging/MessagePort-start-after-close.html
@@ -0,0 +1,10 @@
+
+
diff --git a/Userland/Libraries/LibWeb/HTML/MessagePort.cpp b/Userland/Libraries/LibWeb/HTML/MessagePort.cpp
index a66850f95b..defc64969b 100644
--- a/Userland/Libraries/LibWeb/HTML/MessagePort.cpp
+++ b/Userland/Libraries/LibWeb/HTML/MessagePort.cpp
@@ -364,6 +364,9 @@ void MessagePort::post_message_task_steps(SerializedTransferRecord& serialize_wi
// https://html.spec.whatwg.org/multipage/web-messaging.html#dom-messageport-start
void MessagePort::start()
{
+ if (!is_entangled())
+ return;
+
VERIFY(m_socket);
VERIFY(m_fd_passing_socket);