diff --git a/src/switch_rtp.c b/src/switch_rtp.c
index 105cf70ec3..05e5295025 100644
--- a/src/switch_rtp.c
+++ b/src/switch_rtp.c
@@ -967,6 +967,7 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
 			char key = switch_rfc2833_to_char(packet[0]);
 			uint16_t in_digit_seq = ntohs((uint16_t) rtp_session->recv_msg.header.seq);
 
+			
 			/* SHEESH.... Curse you RFC2833 inventors!!!! */
 			if ((time(NULL) - rtp_session->dtmf_data.last_digit_time) > 2) {
 				rtp_session->dtmf_data.last_digit = 0;
@@ -974,12 +975,12 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
 			}
 			if (in_digit_seq > rtp_session->dtmf_data.in_digit_seq) {
 				rtp_session->dtmf_data.in_digit_seq = in_digit_seq;
-
 				if (duration && end) {
 					if (key != rtp_session->dtmf_data.last_digit) {
 						char digit_str[] = { key, 0 };
 						time(&rtp_session->dtmf_data.last_digit_time);
 						switch_rtp_queue_dtmf(rtp_session, digit_str);
+						switch_set_flag_locked(rtp_session, SWITCH_RTP_FLAG_BREAK);
 					}
 					if (++rtp_session->dtmf_data.dc >= 3) {
 						rtp_session->dtmf_data.last_digit = 0;