diff --git a/src/common/ged.py b/src/common/ged.py
index 72920f05e6931867be27af3bcc4234cef1fa7162..0d8766c1fa8149fbcc1b743fad92089913c16166 100644
--- a/src/common/ged.py
+++ b/src/common/ged.py
@@ -27,6 +27,7 @@ Global Events Dispatcher module.
 
 import traceback
 
+from common.xmpp import NodeProcessed
 import logging
 log = logging.getLogger('gajim.c.ged')
 
@@ -86,11 +87,16 @@ class GlobalEventsDispatcher(object):
     def raise_event(self, event_name, *args, **kwargs):
         log.debug('%s\nArgs: %s'%(event_name, str(args)))
         if event_name in self.handlers:
+            node_processed = False
             for priority, handler in self.handlers[event_name]:
                 try:
                     if handler(*args, **kwargs):
                         return True
+                except NodeProcessed:
+                    node_processed = True
                 except Exception, e:
                     log.error('Error while running an even handler: %s' % \
                         handler)
                     traceback.print_exc()
+            if node_processed:
+                raise NodeProcessed