diff --git a/include/asterisk/frame.h b/include/asterisk/frame.h
index 475317a23ae0698089c18b9c97004e20b95ee4a1..49968ff36aeb11d81fcdefa33960d16669ffedea 100644
--- a/include/asterisk/frame.h
+++ b/include/asterisk/frame.h
@@ -263,8 +263,9 @@ extern struct ast_frame ast_null_frame;
 #define AST_FORMAT_VIDEO_MASK   (((1 << 25)-1) & ~(AST_FORMAT_AUDIO_MASK))
 /*! T.140 Text format - ITU T.140, RFC 4351*/
 #define AST_FORMAT_T140		(1 << 25)
+/*! Maximum text mask */
 #define AST_FORMAT_MAX_TEXT	(1 << 26)
-#define AST_FORMAT_TEXT_MASK   (((1 << 25)-1) & ~(AST_FORMAT_AUDIO_MASK))
+#define AST_FORMAT_TEXT_MASK   (((1 << 27)-1) & ~(AST_FORMAT_AUDIO_MASK) & ~(AST_FORMAT_VIDEO_MASK)))
 
 enum ast_control_frame_type {
 	AST_CONTROL_HANGUP = 1,		/*!< Other end has hungup */
diff --git a/main/frame.c b/main/frame.c
index bac9340c7f42fe6b5e96f055197a9591c8fc907c..6e539e7c9ca07cbd2080efed812f82a25fb6c616 100644
--- a/main/frame.c
+++ b/main/frame.c
@@ -130,7 +130,7 @@ static struct ast_format_list AST_FORMAT_LIST[] = {					/*!< Bit number: comment
 	{ 0, 0, "nothing", "undefined" },
 	{ 0, 0, "nothing", "undefined" },
 	{ 0, AST_FORMAT_MAX_VIDEO, "maxvideo", "Maximum video format" },
-	{ 0, AST_FORMAT_T140, "t140", "Passthrough T.140 Realtime Text" },
+	{ 1, AST_FORMAT_T140, "t140", "Passthrough T.140 Realtime Text" },
 	{ 0, 0, "nothing", "undefined" },
 	{ 0, 0, "nothing", "undefined" },
 	{ 0, AST_FORMAT_MAX_TEXT, "maxtext", "Maximum text format" },
diff --git a/main/rtp.c b/main/rtp.c
index 307ae188895951e4eb7c1acc06fff34cc416ddb1..c629da006b322062cdbd59414ea9878a523826dd 100644
--- a/main/rtp.c
+++ b/main/rtp.c
@@ -1440,7 +1440,7 @@ static struct rtpPayloadType static_RTP_PT[MAX_RTP_PT] = {
 	[97] = {1, AST_FORMAT_ILBC},
 	[99] = {1, AST_FORMAT_H264},
 	[101] = {0, AST_RTP_DTMF},
-	[102] = {0, AST_FORMAT_T140},	/* Real time text chat */
+	[102] = {1, AST_FORMAT_T140},	/* Real time text chat */
 	[110] = {1, AST_FORMAT_SPEEX},
 	[111] = {1, AST_FORMAT_G726},
 	[112] = {1, AST_FORMAT_G726_AAL2},