diff --git a/src/org/jitsi/impl/neomedia/RTPConnectorInputStream.java b/src/org/jitsi/impl/neomedia/RTPConnectorInputStream.java
old mode 100644
new mode 100755
index 1a6d19a61cced6809d4a2e090460ec92cd2f41a8..0402a5f50656fde7c9c5b6637b6a1478264711e8
--- a/src/org/jitsi/impl/neomedia/RTPConnectorInputStream.java
+++ b/src/org/jitsi/impl/neomedia/RTPConnectorInputStream.java
@@ -209,10 +209,25 @@ protected RawPacket[] createRawPacket(DatagramPacket datagramPacket)
         if (pkt == null)
             pkt = new RawPacket();
 
-        pkt.setBuffer(datagramPacket.getData());
+        byte[] buffer = pkt.getBuffer();
+        int length = datagramPacket.getLength();
+        if (buffer == null || buffer.length < length)
+        {
+            buffer = new byte[length];
+            pkt.setBuffer(buffer);
+        }
+
+        System.arraycopy(
+                datagramPacket.getData(),
+                datagramPacket.getOffset(),
+                buffer,
+                0,
+                length);
+
+        pkt.setBuffer(buffer);
+        pkt.setOffset(0);
+        pkt.setLength(length);
         pkt.setFlags(0);
-        pkt.setLength(datagramPacket.getLength());
-        pkt.setOffset(datagramPacket.getOffset());
 
         pkts[0] = pkt;
         return pkts;
@@ -302,7 +317,6 @@ public int getMinimumTransferSize()
      */
     private void poolRawPacket(RawPacket pkt)
     {
-        pkt.setBuffer(null);
         pkt.setFlags(0);
         pkt.setLength(0);
         pkt.setOffset(0);