diff --git a/src/switch_rtp.c b/src/switch_rtp.c
index d408a69be4..ba2e11e562 100644
--- a/src/switch_rtp.c
+++ b/src/switch_rtp.c
@@ -1704,7 +1704,7 @@ static void check_jitter(switch_rtp_t *rtp_session)
 
 	diff_time = (current_time - rtp_session->stats.inbound.last_proc_time);
 	seq = (int)(uint16_t) ntohs((uint16_t) rtp_session->recv_msg.header.seq);
-	
+
 	/* Burst and Packet Loss */
 	rtp_session->stats.inbound.recved++;
 
@@ -4466,13 +4466,13 @@ static switch_status_t read_rtp_packet(switch_rtp_t *rtp_session, switch_size_t
 		rtp_session->missed_count = 0;
 	}
 
-
-	if (*bytes > rtp_header_len && (rtp_session->recv_msg.header.version == 2 && check_recv_payload(rtp_session))) {
-		xcheck_jitter = *bytes;
-		check_jitter(rtp_session);
+	if (!rtp_session->jb || rtp_session->pause_jb || !jb_valid(rtp_session)) {
+		if (*bytes > rtp_header_len && (rtp_session->recv_msg.header.version == 2 && check_recv_payload(rtp_session))) {
+			xcheck_jitter = *bytes;
+			check_jitter(rtp_session);
+		}
 	}
 
-
 	if (check_rtcp_and_ice(rtp_session) == -1) {
 		return SWITCH_STATUS_GENERR;
 	}