diff --git a/Userland/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp b/Userland/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp
index 6b43f20579..57f6ca830a 100644
--- a/Userland/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp
+++ b/Userland/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp
@@ -107,7 +107,7 @@ void EventLoop::spin_processing_tasks_with_source_until(Task::Source source, JS:
return true;
if (m_task_queue.has_runnable_tasks()) {
auto tasks = m_task_queue.take_tasks_matching([&](auto& task) {
- return task.source() == source;
+ return task.source() == source && task.is_runnable();
});
for (auto& task : tasks.value()) {