diff --git a/res/res_pjsip_sdp_rtp.c b/res/res_pjsip_sdp_rtp.c
index 701edc3c2024ffd68a1c81e69ab5c3e8a9e9be5d..7c861dac916780fb8da3976e36284d695e5d4a74 100644
--- a/res/res_pjsip_sdp_rtp.c
+++ b/res/res_pjsip_sdp_rtp.c
@@ -209,24 +209,30 @@ static int create_rtp(struct ast_sip_session *session, struct ast_sip_session_me
 				session->endpoint->media.address);
 		}
 	} else {
-		struct ast_sip_transport *transport =
-			ast_sorcery_retrieve_by_id(ast_sip_get_sorcery(), "transport",
-									   session->endpoint->transport);
-
-		if (transport && transport->state) {
-			char hoststr[PJ_INET6_ADDRSTRLEN];
-
-			pj_sockaddr_print(&transport->state->host, hoststr, sizeof(hoststr), 0);
-			if (ast_sockaddr_parse(&temp_media_address, hoststr, 0)) {
-				ast_debug(1, "Transport %s bound to %s: Using it for RTP media.\n",
-					session->endpoint->transport, hoststr);
-				media_address = &temp_media_address;
-			} else {
-				ast_debug(1, "Transport %s bound to %s: Invalid for RTP media.\n",
-					session->endpoint->transport, hoststr);
+		struct ast_sip_transport *transport;
+
+		transport = ast_sorcery_retrieve_by_id(ast_sip_get_sorcery(), "transport",
+			session->endpoint->transport);
+		if (transport) {
+			struct ast_sip_transport_state *trans_state;
+
+			trans_state = ast_sip_get_transport_state(ast_sorcery_object_get_id(transport));
+			if (trans_state) {
+				char hoststr[PJ_INET6_ADDRSTRLEN];
+
+				pj_sockaddr_print(&trans_state->host, hoststr, sizeof(hoststr), 0);
+				if (ast_sockaddr_parse(&temp_media_address, hoststr, 0)) {
+					ast_debug(1, "Transport %s bound to %s: Using it for RTP media.\n",
+						session->endpoint->transport, hoststr);
+					media_address = &temp_media_address;
+				} else {
+					ast_debug(1, "Transport %s bound to %s: Invalid for RTP media.\n",
+						session->endpoint->transport, hoststr);
+				}
+				ao2_ref(trans_state, -1);
 			}
+			ao2_ref(transport, -1);
 		}
-		ao2_cleanup(transport);
 	}
 
 	if (!(session_media->rtp = ast_rtp_instance_new(session->endpoint->media.rtp.engine, sched, media_address, NULL))) {