diff -bur LDAPUserFolder/LDAPUserFolder.py LDAPUserFolder.ictp/LDAPUserFolder.py
--- LDAPUserFolder/LDAPUserFolder.py	2007-03-29 20:19:42.000000000 +0200
+++ LDAPUserFolder.ictp/LDAPUserFolder.py	2008-01-10 15:42:51.172429105 +0100
@@ -1143,11 +1143,14 @@
             gscope = self._delegate.getScopes()[self.groups_scope]
 
             if dn != '*':
-                f_template = '(&(objectClass=%s)(%s=%s))'
+		### ANTONIO HACK
+		user_id = dn[dn.find('=')+1:]
+		user_id = user_id[:user_id.find(',')]
+		f_template = '(&(objectClass=%s)(|(%s=%s)(%s=%s)))'
                 group_filter = '(|'
 
                 for g_name, m_name in GROUP_MEMBER_MAP.items():
-                    fltr = filter_format(f_template, (g_name, m_name, dn))
+                    fltr = filter_format(f_template, (g_name, m_name, dn, m_name, user_id))
                     group_filter += fltr
 
                 group_filter += ')'
diff -bur LDAPUserFolder/LDAPUserSatellite.py LDAPUserFolder.ictp/LDAPUserSatellite.py
--- LDAPUserFolder/LDAPUserSatellite.py	2007-03-29 20:19:42.000000000 +0200
+++ LDAPUserFolder.ictp/LDAPUserSatellite.py	2008-01-10 15:43:38.297703904 +0100
@@ -207,7 +207,7 @@
         if self.groups_base:   # We were given a search base, so search there
             user_dn = user.getUserDN()
             member_attrs = list(Set(GROUP_MEMBER_MAP.values()))
-            filt_list = [ filter_format('(%s=%s)', (m_attr, user_dn))
+            filt_list = [ filter_format('(|(%s=%s)(%s=%s))', (m_attr, user_dn, m_attr, user_id))
                                         for m_attr in member_attrs ]
             group_filter = '(|%s)' % ''.join(filt_list)
 
@@ -287,7 +287,9 @@
     def getGroups(self, dn='*', attr=None):
         """ return group records i know about """
         group_list = []
-
+        ### ANTONIO HACK: definisco user_id in modo brutale
+        user_id = user_dn[user_dn.find('=')+1:]
+        user_id = user_id[:user_id.find(',')]	
         if self.groups_base:
             no_show = ('Anonymous', 'Authenticated', 'Shared')
 
@@ -298,7 +300,7 @@
                 group_filter = '(|%s)' % ''.join(filt_list)
             else:
                 member_attrs = list(Set(GROUP_MEMBER_MAP.values()))
-                filt_list = [ filter_format('(%s=%s)', (m_attr, dn))
+                filt_list = [ filter_format('(|(%s=%s)(%s=%s))', (m_attr, dn, m_attr, user_id))
                                             for m_attr in member_attrs ]
                 group_filter = '(|%s)' % ''.join(filt_list)
             luf = self.getLUF()
diff -bur LDAPUserFolder/utils.py LDAPUserFolder.ictp/utils.py
--- LDAPUserFolder/utils.py	2007-03-15 11:25:16.000000000 +0100
+++ LDAPUserFolder.ictp/utils.py	2008-01-10 15:37:51.738886222 +0100
@@ -37,6 +37,7 @@
                    , 'groupOfNames' : 'member'
                    , 'accessGroup' : 'member'
                    , 'group' : 'member'
+                   , 'posixGroup' : 'memberUid'
                    }
 
 VALID_GROUP_ATTRIBUTES = Set(list(GROUP_MEMBER_MAP.values()) +
