diff --git a/src/common/connection_handlers_events.py b/src/common/connection_handlers_events.py
index 16f5d3418b7b3d314d5270fbc9775d76b7794b57..06bb22c836e336d8613e68447ba72be0f9290569 100644
--- a/src/common/connection_handlers_events.py
+++ b/src/common/connection_handlers_events.py
@@ -2000,6 +2000,13 @@ class FileRequestReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
                 self.file_props.receiver = self.conn._ft_get_our_jid()
             else:
                 file_tag = desc.getTag('request').getTag('file')
+                h = file_tag.getTag('hash')
+                n = file_tag.getTag('name')
+                if h:
+                    file_info = self.conn.get_files_info(hash_=h)
+                elif n:
+                    file_info = self.conn.get_files_info(name=n)
+                self.file_props.file_name = file_info['file-name']
                 self.file_props.sender = self.conn._ft_get_our_jid()
                 self.file_props.receiver = self.fjid
                 self.file_props.type_ = 's'
diff --git a/src/common/jingle_ft.py b/src/common/jingle_ft.py
index 851a1628907fe6841347d01e3d9f274c0653eb53..e605e24d31b0bef18ce9b8f7525bd3e7b3e5b882 100644
--- a/src/common/jingle_ft.py
+++ b/src/common/jingle_ft.py
@@ -47,6 +47,7 @@ STATE_TRANSFERING = 6
 
 
 class JingleFileTransfer(JingleContent):
+
     def __init__(self, session, transport=None, file_props=None,
     use_security=False):
         JingleContent.__init__(self, session, transport)
@@ -117,6 +118,10 @@ class JingleFileTransfer(JingleContent):
         gajim.nec.push_incoming_event(FileRequestReceivedEvent(None,
             conn=self.session.connection, stanza=stanza, jingle_content=content,
             FT_content=self))
+        if self.session.request:
+            # accept the request
+            self.session.approve_content(self.media, self.name)
+            self.session.accept_session()
 
     def __on_session_initiate_sent(self, stanza, content, error, action):
         pass
diff --git a/src/common/jingle_session.py b/src/common/jingle_session.py
index 44cab74ed899be4d6684ff0348bba1bdcb9225b8..8b5814d57c6d6fc5873e5bc021d36ba46b575de1 100644
--- a/src/common/jingle_session.py
+++ b/src/common/jingle_session.py
@@ -86,6 +86,7 @@ class JingleSession(object):
         self.weinitiate = weinitiate
         # Are we requesting or offering a file?
         self.werequest = werequest
+        self.request = False
         # what state is session in? (one from JingleStates)
         self.state = JingleStates.ended
         if not sid:
@@ -516,17 +517,14 @@ class JingleSession(object):
             request = \
                  jingle.getTag('content').getTag('description').getTag('request')
             if request:
+                self.request = True
                 h = request.getTag('file').getTag('hash')
                 n = request.getTag('file').getTag('name')
                 if h:
                     file_info = self.connection.get_files_info(hash_=h)
                 elif n:
                     file_info = self.connection.get_files_info(name=n)
-                if file_info:
-                    file_props = FilesProp.getFileProp(self.connection.name,
-                                                       self.sid)
-                    file_props.file_name = file_info['file-name']
-                else:
+                if not file_info:
                     log.warning('The peer ' + self.peerjid + \
                                 ' is requesting a ' + \
                                 'file that we dont have')