Index: src/main/java/org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.java
===================================================================
--- src/main/java/org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.java	(revision 1179654)
+++ src/main/java/org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.java	(working copy)
@@ -139,28 +139,31 @@
             NodeImpl root = (NodeImpl) systemSession.getRootNode();
             if (ACLProvider.isRepoAccessControlled(root)) {
                 NodeImpl aclNode = root.getNode(N_REPO_POLICY);
-                List<AccessControlEntry> entries = new ACLTemplate(aclNode).getEntries();
-                if (!entries.isEmpty() && filter != null) {
-                    filter.filterEntries(entries, userAces, groupAces);
-                }
+                addFilteredEntriesToList(filter, new ACLTemplate(aclNode).getEntries(), userAces, groupAces);
             }
         } else {
-            NodeId next = node.getNodeId();
+            addFilteredEntriesToList(filter, getEntries(node.getNodeId()), userAces, groupAces);
+            NodeId next = node.getParentId();
             while (next != null) {
-                List<AccessControlEntry> entries = getEntries(next);
-                if (!entries.isEmpty() && filter != null) {
-                    filter.filterEntries(entries, userAces, groupAces);
-                }
+                addFilteredEntriesToList(filter, getEntries(next), userAces, groupAces);
                 next = getParentId(next);
             }
         }
-        
         List<AccessControlEntry> entries = new ArrayList<AccessControlEntry>(userAces.size() + groupAces.size());
         entries.addAll(userAces);
         entries.addAll(groupAces);
 
         return entries;
     }
+    
+    private void addFilteredEntriesToList(EntryFilter filter,
+            List<AccessControlEntry> entries,
+            LinkedList<AccessControlEntry> userAces,
+            LinkedList<AccessControlEntry> groupAces) {
+        if (!entries.isEmpty() && filter != null) {
+            filter.filterEntries(entries, userAces, groupAces);
+        }
+    }
 
     /**
      * Retrieve the access control entries defined for the given node. If the
