diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c
index 45446715fbaf68336a31331b655c0f81056a8b96..625ab8be3c97fb07650a19b298d47464593e9332 100644
--- a/res/res_pjsip_session.c
+++ b/res/res_pjsip_session.c
@@ -2713,8 +2713,10 @@ static void session_inv_on_media_update(pjsip_inv_session *inv, pj_status_t stat
 	struct ast_sip_session *session = inv->mod_data[session_module.id];
 	const pjmedia_sdp_session *local, *remote;
 
-	if (!session->channel) {
-		/* If we don't have a channel. We really don't care about media updates.
+	if (!session || !session->channel) {
+		/*
+		 * If we don't have a session or channel then we really
+		 * don't care about media updates.
 		 * Just ignore
 		 */
 		return;