diff --git a/main/sdp_state.c b/main/sdp_state.c
index f27da211bf49db9669a8dccf40f499273af692d6..0f06bf9e3032e75ae9e4be5adec1f9521082b384 100644
--- a/main/sdp_state.c
+++ b/main/sdp_state.c
@@ -875,6 +875,7 @@ static void update_ice(const struct ast_sdp_state *state, struct ast_rtp_instanc
 {
 	struct ast_rtp_engine_ice *ice;
 	const struct ast_sdp_a_line *attr;
+	const struct ast_sdp_a_line *attr_rtcp_mux;
 	unsigned int attr_i;
 
 	/* If ICE support is not enabled or available exit early */
@@ -902,10 +903,12 @@ static void update_ice(const struct ast_sdp_state *state, struct ast_rtp_instanc
 		return;
 	}
 
-	if (ast_sdp_m_find_attribute(remote_m_line, "ice-lite", -1)) {
+	if (ast_sdp_find_attribute(remote_sdp, "ice-lite", -1)) {
 		ice->ice_lite(rtp);
 	}
 
+	attr_rtcp_mux = ast_sdp_m_find_attribute(remote_m_line, "rtcp-mux", -1);
+
 	/* Find all of the candidates */
 	for (attr_i = 0; attr_i < ast_sdp_m_get_a_count(remote_m_line); ++attr_i) {
 		char foundation[32];
@@ -931,9 +934,9 @@ static void update_ice(const struct ast_sdp_state *state, struct ast_rtp_instanc
 			continue;
 		}
 
-		if (ast_sdp_options_get_rtcp_mux(options)
-			&& ast_sdp_m_find_attribute(remote_m_line, "rtcp-mux", -1)
-			&& candidate.id > 1) {
+		if (candidate.id > 1
+			&& attr_rtcp_mux
+			&& ast_sdp_options_get_rtcp_mux(options)) {
 			/* Remote side may have offered RTP and RTCP candidates. However, if we're using RTCP MUX,
 			 * then we should ignore RTCP candidates.
 			 */