diff --git a/plugins/plugin_installer/plugin_installer.py b/plugins/plugin_installer/plugin_installer.py
index 28efadd17f0290a025fb64bde6921fcfa28d07f1..7b9f43485d651686487293a85361c21aceaedb11 100644
--- a/plugins/plugin_installer/plugin_installer.py
+++ b/plugins/plugin_installer/plugin_installer.py
@@ -81,30 +81,34 @@ class PluginInstaller(GajimPlugin):
     @log_calls('PluginInstallerPlugin')
     def check_update(self):
         def _run():
-            to_update = []
-            con = ftplib.FTP_TLS(ftp.server)
-            con.login()
-            con.prot_p()
-            con.cwd('plugins')
-            plugins_dirs = con.nlst()
-            for dir_ in plugins_dirs:
-                try:
-                    con.retrbinary('RETR %s/manifest.ini' % dir_,
-                        ftp.handleDownload)
-                except Exception, error:
-                    if str(error).startswith('550'):
-                        continue
-                ftp.config.readfp(io.BytesIO(ftp.buffer_.getvalue()))
-                local_version = ftp.get_plugin_version(ftp.config.get('info',
-                    'name'))
-                if local_version:
-                    local = convert_version_to_list(local_version)
-                    remote = convert_version_to_list(ftp.config.get('info',
-                        'version'))
-                    if remote > local:
-                        to_update.append(ftp.config.get('info', 'name'))
-            con.quit()
-            gobject.idle_add(self.warn_update, to_update)
+            try:
+                to_update = []
+                con = ftplib.FTP_TLS(ftp.server)
+                con.login()
+                con.prot_p()
+                con.cwd('plugins')
+                plugins_dirs = con.nlst()
+                for dir_ in plugins_dirs:
+                    try:
+                        con.retrbinary('RETR %s/manifest.ini' % dir_,
+                            ftp.handleDownload)
+                    except Exception, error:
+                        if str(error).startswith('550'):
+                            continue
+                    ftp.config.readfp(io.BytesIO(ftp.buffer_.getvalue()))
+                    local_version = ftp.get_plugin_version(ftp.config.get(
+                        'info', 'name'))
+                    if local_version:
+                        local = convert_version_to_list(local_version)
+                        remote = convert_version_to_list(ftp.config.get('info',
+                            'version'))
+                        if remote > local:
+                            to_update.append(ftp.config.get('info', 'name'))
+                con.quit()
+                gobject.idle_add(self.warn_update, to_update)
+            except Exception, e:
+                WarningDialog(_('Ftp error'), str(e),
+                    gajim.interface.roster.window)
         ftp = Ftp(self)
         ftp.run = _run
         ftp.start()