diff --git a/codecs/codec_g723_1.c b/codecs/codec_g723_1.c
index e8fd71198c88d451966e0a0845295ee5fb4fc1c8..ad56bb02ec5d1f9045f1dc67df47a7ab97e0225e 100755
--- a/codecs/codec_g723_1.c
+++ b/codecs/codec_g723_1.c
@@ -15,9 +15,10 @@
  * the GNU General Public License
  */
 
-#define TYPE_SILENCE	 0x2
 #define TYPE_HIGH	 0x0
 #define TYPE_LOW	 0x1
+#define TYPE_SILENCE	 0x2
+#define TYPE_DONTSEND	 0x3
 #define TYPE_MASK	 0x3
 
 #include <asterisk/translate.h>
@@ -189,7 +190,9 @@ static struct ast_frame *g723tolin_frameout(struct ast_translator_pvt *pvt)
 static int g723_len(unsigned char buf)
 {
 	switch(buf & TYPE_MASK) {
-	case TYPE_MASK:
+	case TYPE_DONTSEND:
+		return 0;
+		break;
 	case TYPE_SILENCE:
 		return 4;
 		break;
@@ -293,6 +296,7 @@ static struct ast_frame *lintog723_frameout(struct ast_translator_pvt *pvt)
 #endif
 		/* Assume 8000 Hz */
 		tmp->f.samples += 30;
+		/* FIXME:SLD: Shouldn't the [0] be [cnt]?? */
 		cnt += g723_len(tmp->outbuf[0]);
 		tmp->tail -= Frame;
 		/* Move the data at the end of the buffer to the front */
diff --git a/rtp.c b/rtp.c
index 6f628fee879a032086a96c4e30ffac59cc051a41..aed30a379c3cdcc44986e4ec8d2f11b5fe2cef8f 100755
--- a/rtp.c
+++ b/rtp.c
@@ -33,9 +33,10 @@
 #include <asterisk/acl.h>
 #include <asterisk/channel_pvt.h>
 
-#define TYPE_SILENCE	 0x2
 #define TYPE_HIGH	 0x0
 #define TYPE_LOW	 0x1
+#define TYPE_SILENCE	 0x2
+#define TYPE_DONTSEND	 0x3
 #define TYPE_MASK	 0x3
 
 static int dtmftimeout = 300;	/* 300 samples */
@@ -88,7 +89,9 @@ int ast_rtp_fd(struct ast_rtp *rtp)
 static int g723_len(unsigned char buf)
 {
 	switch(buf & TYPE_MASK) {
-	case TYPE_MASK:
+	case TYPE_DONTSEND:
+		return 0;
+		break;
 	case TYPE_SILENCE:
 		return 4;
 		break;