diff --git a/core/msg.c b/core/msg.c
index fa8736ae9ce58b48bcbfaf14e8aee04623bd6ae8..f40d1e71987c3b5241148153a9904a42add21bd6 100644
--- a/core/msg.c
+++ b/core/msg.c
@@ -78,6 +78,9 @@ int msg_send(msg_t *m, unsigned int target_pid, bool block)
         if (target->msg_array && queue_msg(target, m)) {
             DEBUG("msg_send() %s:%i: Target %i has a msg_queue. Queueing message.\n", __FILE__, __LINE__, target_pid);
             eINT();
+            if (active_thread->status == STATUS_REPLY_BLOCKED) {
+                thread_yield();
+            }
             return 1;
         }