diff --git a/src/common/protocol/bytestream.py b/src/common/protocol/bytestream.py
index 9dded2edf4a70b0b042621cb694a75fbaff0a41e..81825b4acfcadf7d91864cdd542536652a999766 100644
--- a/src/common/protocol/bytestream.py
+++ b/src/common/protocol/bytestream.py
@@ -790,6 +790,7 @@ class ConnectionIBBytestream(ConnectionBytestream):
             rep = nbxmpp.Protocol('iq', stanza.getFrom(), 'result',
                 stanza.getTo(), {'id': stanza.getID()})
             file_props.block_size = blocksize
+            file_props.direction = '<'
             file_props.seq = 0
             file_props.received_len = 0
             file_props.last_time = time.time()
@@ -820,7 +821,6 @@ class ConnectionIBBytestream(ConnectionBytestream):
             if session.weinitiate:
                 session.cancel_session()
 
-
     def OpenStream(self, sid, to, fp, blocksize=4096):
         """
         Start new stream. You should provide stream id 'sid', the endpoind jid
@@ -997,7 +997,10 @@ class ConnectionIBBytestream(ConnectionBytestream):
                 break
         else:
             if stanza.getTag('data'):
-                if self.IBBMessageHandler(conn, stanza):
+                sid = stanza.getTagAttr('data', 'sid')
+                file_props = FilesProp.getFileProp(self.name, sid)
+                if file_props.connected and self.IBBMessageHandler(conn,
+                stanza):
                     reply = stanza.buildReply('result')
                     reply.delChild('data')
                     conn.send(reply)
diff --git a/src/common/socks5.py b/src/common/socks5.py
index a8ce7ecd539448cecd273776819daf81ad189f31..5ea41c3dc05d8b84f25647e159477ce6f7425049 100644
--- a/src/common/socks5.py
+++ b/src/common/socks5.py
@@ -538,6 +538,7 @@ class Socks5:
                 raise IOError, e
 
     def close_file(self):
+        # Close file we're sending from
         if self.file:
             if not self.file.closed:
                 try:
@@ -545,6 +546,12 @@ class Socks5:
                 except Exception:
                     pass
             self.file = None
+        # Close file we're receiving into
+        if self.file_props.fd:
+            try:
+                self.file_props.fd.close()
+            except Exception:
+                pass
 
     def get_fd(self):
         """