diff --git a/product/CMFCategory/CategoryTool.py b/product/CMFCategory/CategoryTool.py
index bbc60ecb3e6dc6742e55c1884185454d57bf2509..8323bad8a5bcadcb72e339f0de0a8ebd4e5b9ec7 100644
--- a/product/CMFCategory/CategoryTool.py
+++ b/product/CMFCategory/CategoryTool.py
@@ -781,7 +781,7 @@ class CategoryTool( UniqueObject, Folder, Base ):
       #LOG('getSingleCategoryMembershipList', 0, 'base_category = %s, spec = %s, base = %s, context = %s, context.aq_inner.aq_parent = %s' % (repr(base_category), repr(spec), repr(base), repr(context), repr(context.aq_inner.aq_parent)))
       if base_category == 'parent':
         parent = context.aq_inner.aq_parent # aq_inner is required to make sure we use containment
-        if not spec or parent.portal_type in spec:
+        if parent.portal_type in spec:
           parent_relative_url = parent.getRelativeUrl()
           if (checked_permission is None) or \
             (permissionFilter(parent_relative_url) is not None):
diff --git a/product/CMFCategory/tests/testCMFCategory.py b/product/CMFCategory/tests/testCMFCategory.py
index fee45fef21c70b01d626f229b918bac431dcacb1..1aa94d106ae60a867cdd32207cef8a5d67c36680 100644
--- a/product/CMFCategory/tests/testCMFCategory.py
+++ b/product/CMFCategory/tests/testCMFCategory.py
@@ -934,26 +934,41 @@ class TestCMFCategory(ERP5TypeTestCase):
     obj = self.portal.person_module.newContent(portal_type='Person')
     parent_url = self.portal.person_module.getRelativeUrl()
 
-    self.assertEquals([parent_url],
+    self.assertEquals([],
           pc.getSingleCategoryMembershipList(obj, 'parent'))
 
     self.assertEquals([parent_url],
           pc.getSingleCategoryMembershipList(obj, 'parent',
                         portal_type='Person Module'))
+
     self.assertEquals([],
           pc.getSingleCategoryMembershipList(obj, 'parent',
                         portal_type='Organisation'))
 
-    self.assertEquals(['parent/%s' % parent_url],
+    self.assertEquals([],
           pc.getSingleCategoryMembershipList(obj, 'parent', base=1))
 
-    self.assertEquals([parent_url],
+    self.assertEquals(['parent/%s' % parent_url],
+          pc.getSingleCategoryMembershipList(obj, 'parent', base=1,
+                        portal_type='Person Module'))
+
+    self.assertEquals([],
           pc.getSingleCategoryMembershipList(obj, 'parent',
                                 checked_permission='View'))
+
+    self.assertEquals([parent_url],
+          pc.getSingleCategoryMembershipList(obj, 'parent',
+                                checked_permission='View',
+                                portal_type='Person Module'))
+
     noSecurityManager()
     self.assertEquals([],
           pc.getSingleCategoryMembershipList(obj, 'parent',
                                 checked_permission='Manage portal'))
+    self.assertEquals([],
+          pc.getSingleCategoryMembershipList(obj, 'parent',
+                                checked_permission='Manage portal',
+                                portal_type='Person Module'))
 
 
 def test_suite():