diff --git a/res/res_pjsip/pjsip_message_filter.c b/res/res_pjsip/pjsip_message_filter.c
index 8a6321979d14af82efcca5bf3546e952495e3608..5fe19f96f89bacfe963e8f844ccb4d6eede2877f 100644
--- a/res/res_pjsip/pjsip_message_filter.c
+++ b/res/res_pjsip/pjsip_message_filter.c
@@ -110,14 +110,13 @@ static pjsip_transport *get_udp_transport(pj_str_t *address, int port)
 	}
 
 	for (iter = ao2_iterator_init(transport_states, 0); (transport_state = ao2_iterator_next(&iter)); ao2_ref(transport_state, -1)) {
-		if (transport_state && ((transport_state->type != AST_TRANSPORT_UDP) ||
-			(pj_strcmp(&transport_state->transport->local_name.host, address)) ||
-			(transport_state->transport->local_name.port != port))) {
-			continue;
+		if (transport_state->type == AST_TRANSPORT_UDP &&
+			!pj_strcmp(&transport_state->transport->local_name.host, address) &&
+			transport_state->transport->local_name.port == port) {
+			sip_transport = transport_state->transport;
+			ao2_ref(transport_state, -1);
+			break;
 		}
-
-		sip_transport = transport_state->transport;
-		break;
 	}
 	ao2_iterator_destroy(&iter);