Index: kernel/generic/src/time/timeout.c
===================================================================
--- kernel/generic/src/time/timeout.c	(revision ba25c4bbca58a62473323b0e9c57e9cb14bcbf5a)
+++ kernel/generic/src/time/timeout.c	(revision 76e17d7c924f512115312602d253baaf3ea42806)
@@ -128,4 +128,8 @@
 bool timeout_unregister(timeout_t *timeout)
 {
+	if (atomic_load_explicit(&timeout->finished, memory_order_acquire))
+		/* The timeout fired and finished already, no need to check the list. */
+		return false;
+
 	assert(timeout->cpu);
 
