Index: kernel/generic/src/udebug/udebug.c
===================================================================
--- kernel/generic/src/udebug/udebug.c	(revision d1582b502edcb7bfeef771a2019538f265e7e27c)
+++ kernel/generic/src/udebug/udebug.c	(revision 4c78104a6837166b8f7dd061ec8df30c45dd4c00)
@@ -94,10 +94,5 @@
 static void udebug_wait_for_go(waitq_t *wq)
 {
-	ipl_t ipl = waitq_sleep_prepare(wq);
-
-	wq->missed_wakeups = 0;  /* Enforce blocking. */
-	bool blocked;
-	(void) waitq_sleep_timeout_unsafe(wq, SYNCH_NO_TIMEOUT, SYNCH_FLAGS_NONE, &blocked);
-	waitq_sleep_finish(wq, blocked, ipl);
+	waitq_sleep(wq);
 }
 
@@ -446,5 +441,5 @@
 				 *
 				 */
-				waitq_wakeup(&thread->udebug.go_wq, WAKEUP_FIRST);
+				waitq_wakeup(&thread->udebug.go_wq, WAKEUP_ALL);
 			}
 
Index: kernel/generic/src/udebug/udebug_ops.c
===================================================================
--- kernel/generic/src/udebug/udebug_ops.c	(revision d1582b502edcb7bfeef771a2019538f265e7e27c)
+++ kernel/generic/src/udebug/udebug_ops.c	(revision 4c78104a6837166b8f7dd061ec8df30c45dd4c00)
@@ -281,5 +281,5 @@
 	 *
 	 */
-	waitq_wakeup(&thread->udebug.go_wq, WAKEUP_FIRST);
+	waitq_wakeup(&thread->udebug.go_wq, WAKEUP_ALL);
 
 	_thread_op_end(thread);
