diff --git a/src/org/jitsi/impl/neomedia/RTPTranslatorImpl.java b/src/org/jitsi/impl/neomedia/RTPTranslatorImpl.java
index 0efc456b86b81a5b439ad3007b13f6884218b7eb..63788bf7c7832d7087fd1b3edbbe60c1b7282aec 100644
--- a/src/org/jitsi/impl/neomedia/RTPTranslatorImpl.java
+++ b/src/org/jitsi/impl/neomedia/RTPTranslatorImpl.java
@@ -748,16 +748,16 @@ private synchronized int read(
             = streamDesc.connectorDesc.streamRTPManagerDesc;
         Format format = null;
 
-        /**
-         * Ignore packets coming from peers whose MediaStream's direction
-         * does not allow receiving.
-         */
-        if (!streamRTPManagerDesc.streamRTPManager.getMediaStream()
-                    .getDirection().allowsReceiving())
-            return read;
-
         if (data)
         {
+            /**
+             * Ignore RTP packets coming from peers whose MediaStream's direction
+             * does not allow receiving.
+             */
+            if (!streamRTPManagerDesc.streamRTPManager.getMediaStream()
+                    .getDirection().allowsReceiving())
+                return read;
+
             /*
              * Do the bytes in the specified buffer resemble (a header of) an
              * RTP packet?
@@ -1023,16 +1023,18 @@ private synchronized int doWrite(
                 StreamRTPManagerDesc streamRTPManagerDesc
                     = streamDesc.connectorDesc.streamRTPManagerDesc;
 
-                /*
-                 * Only write to OutputDataStream-s for which the associated
-                 * MediaStream allows sending.
-                 */
-                if (streamRTPManagerDesc != exclusion
-                        && streamRTPManagerDesc.streamRTPManager
-                               .getMediaStream().getDirection().allowsSending())
+                if (streamRTPManagerDesc != exclusion)
                 {
                     if (data)
                     {
+                       /*
+                        * Only write data packets to OutputDataStream-s for
+                        * which the associated MediaStream allows sending.
+                        */
+                        if (!streamRTPManagerDesc.streamRTPManager.
+                                getMediaStream().getDirection().allowsSending())
+                            return write;
+
                         if ((format != null) && (length > 0))
                         {
                             Integer payloadType