diff --git a/src/org/jitsi/impl/neomedia/transform/dtmf/DtmfRawPacket.java b/src/org/jitsi/impl/neomedia/transform/dtmf/DtmfRawPacket.java
index a0ca934cbe285537ee72e48331b676bd608b78b7..1f01942cee19918520e2da6cb4342326039747ad 100644
--- a/src/org/jitsi/impl/neomedia/transform/dtmf/DtmfRawPacket.java
+++ b/src/org/jitsi/impl/neomedia/transform/dtmf/DtmfRawPacket.java
@@ -154,6 +154,9 @@ private void setDtmfPayload(int code, boolean end, int duration, int volume)
         writeByte(at++, end ? (byte)(volume | 0x80) : (byte)(volume & 0x7f));
         writeByte(at++, (byte)(duration >> 8));
         writeByte(at++, (byte)duration);
+
+        //packet finished setting its payload, set correct length
+        setLength(at);
     }
 
     /**