diff --git a/src/gui_interface.py b/src/gui_interface.py
index 86a78647ed52dbfc3b0aad746cd3b98162ec3a5f..8bb3ebae7c44e4812c8464adb5d65d90c0ba2475 100644
--- a/src/gui_interface.py
+++ b/src/gui_interface.py
@@ -954,13 +954,13 @@ class Interface:
         # then the file is not corrupt
         jid = unicode(file_props.sender)
         if session.file_hash == hash_:
-            self.popup_ft_result(account, jid, file_props)
-            ft_win.set_status(file_props, 'ok')
+            gobject.idle_add(self.popup_ft_result, account, jid, file_props)
+            gobject.idle_add(ft_win.set_status, file_props, 'ok')
         else:
             # wrong hash, we need to get the file again!
             file_props.error = -10
-            self.popup_ft_result(account, jid, file_props)
-            ft_win.set_status(file_props, 'hash_error')
+            gobject.idle_add(self.popup_ft_result, account, jid, file_props)
+            gobject.idle_add(ft_win.set_status, file_props, 'hash_error')
         # End jingle session
         if session:
             session.end_session()