diff --git a/rtp.c b/rtp.c
index 555b7cf1c02fb0c7c9cfb2f6ec49f4be98c550b7..af65250cdfa96f03d113b76c054775e1dcbc1993 100755
--- a/rtp.c
+++ b/rtp.c
@@ -749,6 +749,10 @@ int ast_rtp_write(struct ast_rtp *rtp, struct ast_frame *_f)
 	/* If we have no peer, return immediately */	
 	if (!rtp->them.sin_addr.s_addr)
 		return 0;
+
+	/* If there is no data length, return immediately */
+	if (!_f->datalen) 
+		return 0;
 	
 	/* Make sure we have enough space for RTP header */
 	if (_f->frametype != AST_FRAME_VOICE) {
@@ -756,6 +760,7 @@ int ast_rtp_write(struct ast_rtp *rtp, struct ast_frame *_f)
 		return -1;
 	}
 
+
 	codec = ast_rtp_lookup_code(rtp, 1, _f->subclass);
 	if (codec < 0) {
 		ast_log(LOG_WARNING, "Don't know how to send format %d packets with RTP\n", _f->subclass);