diff --git a/src/common/ged.py b/src/common/ged.py
index 15586d987d6ddf7411848758329c6801ceabe376..72920f05e6931867be27af3bcc4234cef1fa7162 100644
--- a/src/common/ged.py
+++ b/src/common/ged.py
@@ -25,6 +25,8 @@ Global Events Dispatcher module.
 :license: GPL
 '''
 
+import traceback
+
 import logging
 log = logging.getLogger('gajim.c.ged')
 
@@ -85,5 +87,10 @@ class GlobalEventsDispatcher(object):
         log.debug('%s\nArgs: %s'%(event_name, str(args)))
         if event_name in self.handlers:
             for priority, handler in self.handlers[event_name]:
-                if handler(*args, **kwargs):
-                    return True
+                try:
+                    if handler(*args, **kwargs):
+                        return True
+                except Exception, e:
+                    log.error('Error while running an even handler: %s' % \
+                        handler)
+                    traceback.print_exc()