diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c
index fa9e3250c048219326321b829c7f9e29be7606ef..c1aa2757ecd0769c54dc36be85494a7c58066b97 100644
--- a/res/res_rtp_asterisk.c
+++ b/res/res_rtp_asterisk.c
@@ -7382,7 +7382,9 @@ static int red_write(const void *data)
 	struct ast_rtp *rtp = ast_rtp_instance_get_data(instance);
 
 	ao2_lock(instance);
-	ast_rtp_write(instance, &rtp->red->t140);
+	if (rtp->red->t140.datalen > 0) {
+		ast_rtp_write(instance, &rtp->red->t140);
+	}
 	ao2_unlock(instance);
 
 	return 1;