diff --git a/main/channel.c b/main/channel.c
index 5fc9cd83a3c1dbd677d48de0a54375817c9610ca..d13d3f5f8e7ab6ca1f08031df11c7e11e7091461 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -4905,7 +4905,8 @@ int ast_sendtext_data(struct ast_channel *chan, struct ast_msg_data *msg)
 		&& (ast_strlen_zero(content_type) || ast_begins_with(content_type, "text/"))
 		&& (ast_format_cap_has_type(ast_channel_nativeformats(chan), AST_MEDIA_TYPE_TEXT))) {
 		struct ast_frame f;
-		size_t body_len = strlen(body) + 1;
+		/* T.140 payload does not include the null byte terminator */
+		size_t body_len = strlen(body);
 
 		/* Process as T.140 text (moved here from ast_sendtext() */
 		memset(&f, 0, sizeof(f));