diff --git a/core/msg.c b/core/msg.c
index f9042e1681d8950102b99a4fc5a3964c244d5d9c..13f30fd238e6f9be085234748c732e2ba56b9650 100644
--- a/core/msg.c
+++ b/core/msg.c
@@ -142,11 +142,10 @@ int msg_send_receive(msg_t *m, msg_t *reply, unsigned int target_pid)
     tcb_t *me = (tcb_t*) sched_threads[thread_pid];
     sched_set_status(me,  STATUS_REPLY_BLOCKED);
     me->wait_data = (void*) reply;
-    msg_send(m, target_pid, true);
 
     /* msg_send blocks until reply received */
 
-    return 1;
+    return msg_send(m, target_pid, true);
 }
 
 int msg_reply(msg_t *m, msg_t *reply)