diff --git a/daemon/src/sip/sipvoiplink.cpp b/daemon/src/sip/sipvoiplink.cpp
index 0927fa7652af4e559ad1853eaf4c9e69ab599e28..c1afd873f2e159a0a51fcaf3d7fb230640bd2447 100644
--- a/daemon/src/sip/sipvoiplink.cpp
+++ b/daemon/src/sip/sipvoiplink.cpp
@@ -2195,7 +2195,7 @@ void transaction_state_changed_cb(pjsip_inv_session * inv,
     pjsip_rx_data *r_data = event->body.tsx_state.src.rdata;
 
     // Get the message inside the transaction
-    if (!r_data->msg_info.msg->body)
+    if (!r_data or !r_data->msg_info.msg->body)
         return;
 
     const char *formattedMsgPtr = static_cast<const char*>(r_data->msg_info.msg->body->data);
@@ -2230,9 +2230,6 @@ void transaction_state_changed_cb(pjsip_inv_session * inv,
 
         Manager::instance().incomingMessage(call->getCallId(), from, findTextMessage(formattedMessage));
 
-        if (!event->body.tsx_state.src.rdata)
-            return;
-
         // Respond with a 200/OK
         sendOK(inv->dlg, r_data, tsx);