diff --git a/product/CMFActivity/ActivityTool.py b/product/CMFActivity/ActivityTool.py
index c9b609a861296275b59056f4d47f2f3cebd76ae8..964631189ee76898c4d97f1c0d8eee0a69c48d51 100644
--- a/product/CMFActivity/ActivityTool.py
+++ b/product/CMFActivity/ActivityTool.py
@@ -134,14 +134,19 @@ def getServerAddress():
     global _server_address
     if _server_address is None:
         ip = port = ''
-        from asyncore import socket_map
-        for k, v in socket_map.items():
-            if hasattr(v, 'addr'):
-                # see Zope/lib/python/App/ApplicationManager.py: def getServers(self)
-                type = str(getattr(v, '__class__', 'unknown'))
-                if type == 'ZServer.HTTPServer.zhttp_server':
-                    ip, port = v.addr
-                    break
+        try:
+            zopewsgi = sys.modules['Products.ERP5.bin.zopewsgi']
+        except KeyError:
+            from asyncore import socket_map
+            for k, v in socket_map.items():
+                if hasattr(v, 'addr'):
+                    # see Zope/lib/python/App/ApplicationManager.py: def getServers(self)
+                    type = str(getattr(v, '__class__', 'unknown'))
+                    if type == 'ZServer.HTTPServer.zhttp_server':
+                        ip, port = v.addr
+                        break
+        else:
+            ip, port = zopewsgi.server.addr
         if ip == '0.0.0.0':
             ip = socket.gethostbyname(socket.gethostname())
         _server_address = '%s:%s' %(ip, port)