diff --git a/core/thread_flags.c b/core/thread_flags.c
index 281a592306ff3d1d3bff86d1d5c02e1064f8eea3..314b77a29e4c5187fda6dd17c3b2ed6b212be870 100644
--- a/core/thread_flags.c
+++ b/core/thread_flags.c
@@ -112,8 +112,9 @@ inline int __attribute__((always_inline)) thread_flags_wake(thread_t *thread)
     }
 
     if (wakeup) {
-        DEBUG("_thread_flags_wake(): wakeing up pid %"PRIkernel_pid"\n", thread->pid);
-        sched_set_status(thread, STATUS_RUNNING);
+        DEBUG("_thread_flags_wake(): waking up pid %"PRIkernel_pid"\n", thread->pid);
+        sched_set_status(thread, STATUS_PENDING);
+        sched_context_switch_request = 1;
     }
 
     return wakeup;