diff --git a/src/common/protocol/bytestream.py b/src/common/protocol/bytestream.py
index fc928f89be870bd3a703b9d2b68a6ca30eca2f27..51b3e3d24b28847570f14916e49ce6fe9eea621a 100644
--- a/src/common/protocol/bytestream.py
+++ b/src/common/protocol/bytestream.py
@@ -549,34 +549,40 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
         file_props.hash_ = hash_id
         return
 
-    def _connect_error(self, to, _id, sid, code=404):
+    def _connect_error(self,sid, code=404):
         """
         Called when there is an error establishing BS connection, or when
         connection is rejected
         """
         if not self.connection or self.connected < 2:
             return
+        file_props = FilesProp.getFileProp(self.name, sid)
+        if file_props is None:
+            log.error('can not send iq error on failed transfer')
+            return
         msg_dict = {
                 404: 'Could not connect to given hosts',
                 405: 'Cancel',
                 406: 'Not acceptable',
         }
         msg = msg_dict[code]
+        if file_props.type_ == 's':
+            to = file_props.receiver
+        else:
+            to = file_props.sender
         iq = xmpp.Iq(to=to,     typ='error')
-        iq.setAttr('id', _id)
+        iq.setAttr('id', file_props.session_sid)
         err = iq.setTag('error')
         err.setAttr('code', unicode(code))
         err.setData(msg)
         self.connection.send(iq)
         if code == 404:
-            file_props = FilesProp.getFileProp(self.name, sid)
-            if file_props is not None:
-                self.disconnect_transfer(file_props)
-                file_props.error = -3
-                from common.connection_handlers_events import \
-                    FileRequestErrorEvent
-                gajim.nec.push_incoming_event(FileRequestErrorEvent(None,
-                    conn=self, jid=to, file_props=file_props, error_msg=msg))
+            self.disconnect_transfer(file_props)
+            file_props.error = -3
+            from common.connection_handlers_events import \
+                FileRequestErrorEvent
+            gajim.nec.push_incoming_event(FileRequestErrorEvent(None,
+                conn=self, jid=to, file_props=file_props, error_msg=msg))
 
     def _proxy_auth_ok(self, proxy):
         """
diff --git a/src/filetransfers_window.py b/src/filetransfers_window.py
index 89d407291baef491ac0830bd83ca4c03858fe204..a0e36e644c4e7ed9cccb61d2d74c075b3966f105 100644
--- a/src/filetransfers_window.py
+++ b/src/filetransfers_window.py
@@ -553,6 +553,8 @@ class FileTransfersWindow:
 
     def _remove_transfer(self, iter_, sid, file_props):
         self.model.remove(iter_)
+        if not file_props:
+            return
         if file_props.tt_account:
             # file transfer is set
             account = file_props.tt_account