diff --git a/res/res_hep_pjsip.c b/res/res_hep_pjsip.c
index 254028b95d182e29dea90d55d6676f0057574ee0..333719de0afe508e72f5a2d71fd6e4eaf1e548f0 100644
--- a/res/res_hep_pjsip.c
+++ b/res/res_hep_pjsip.c
@@ -121,8 +121,12 @@ static pj_bool_t logging_on_rx_msg(pjsip_rx_data *rdata)
 		return PJ_SUCCESS;
 	}
 
-	pj_sockaddr_print(&rdata->tp_info.transport->local_addr, local_buf, sizeof(local_buf), 3);
-	pj_sockaddr_print(&rdata->pkt_info.src_addr, remote_buf, sizeof(remote_buf), 3);
+	if (rdata->tp_info.transport->addr_len) {
+		pj_sockaddr_print(&rdata->tp_info.transport->local_addr, local_buf, sizeof(local_buf), 3);
+	}
+	if (rdata->pkt_info.src_addr_len) {
+		pj_sockaddr_print(&rdata->pkt_info.src_addr, remote_buf, sizeof(remote_buf), 3);
+	}
 
 	uuid = assign_uuid(&rdata->msg_info.cid->id, &rdata->msg_info.to->tag, &rdata->msg_info.from->tag);
 	if (!uuid) {
diff --git a/res/res_pjsip/pjsip_distributor.c b/res/res_pjsip/pjsip_distributor.c
index 69cbed7844e8c14b7ee88b42f8a123d1263c2781..c829db7872eed75e822759e00a671aa0f2165866 100644
--- a/res/res_pjsip/pjsip_distributor.c
+++ b/res/res_pjsip/pjsip_distributor.c
@@ -100,6 +100,10 @@ static pjsip_dialog *find_dialog(pjsip_rx_data *rdata)
 	pj_str_t *local_tag;
 	pj_str_t *remote_tag;
 
+	if (!rdata->msg_info.msg) {
+		return NULL;
+	}
+
 	if (rdata->msg_info.msg->type == PJSIP_REQUEST_MSG) {
 		local_tag = &rdata->msg_info.to->tag;
 		remote_tag = &rdata->msg_info.from->tag;
diff --git a/res/res_pjsip_logger.c b/res/res_pjsip_logger.c
index e1c4044893393c7d178c613e0e06ee2bba84ee45..320bb03016f5d588fa050b915a3a2b2f1d4f685d 100644
--- a/res/res_pjsip_logger.c
+++ b/res/res_pjsip_logger.c
@@ -121,6 +121,10 @@ static pj_bool_t logging_on_rx_msg(pjsip_rx_data *rdata)
 		return PJ_FALSE;
 	}
 
+	if (!rdata->msg_info.msg) {
+		return PJ_FALSE;
+	}
+
 	ast_verbose("<--- Received SIP %s (%d bytes) from %s:%s:%d --->\n%s\n",
 		    rdata->msg_info.msg->type == PJSIP_REQUEST_MSG ? "request" : "response",
 		    rdata->msg_info.len,