diff --git a/src/com/google/enterprise/adaptor/fs/AclBuilder.java b/src/com/google/enterprise/adaptor/fs/AclBuilder.java
index e8db799..28fa5a4 100644
--- a/src/com/google/enterprise/adaptor/fs/AclBuilder.java
+++ b/src/com/google/enterprise/adaptor/fs/AclBuilder.java
@@ -157,7 +157,6 @@
   private boolean hasReadPermission(Set<AclEntryPermission> p) {
     return p.contains(AclEntryPermission.READ_DATA)
         && p.contains(AclEntryPermission.READ_ACL)
-        && p.contains(AclEntryPermission.READ_ATTRIBUTES)
         && p.contains(AclEntryPermission.READ_NAMED_ATTRS);
   }
 
diff --git a/test/com/google/enterprise/adaptor/fs/AclBuilderTest.java b/test/com/google/enterprise/adaptor/fs/AclBuilderTest.java
index b6ea1e2..d789456 100644
--- a/test/com/google/enterprise/adaptor/fs/AclBuilderTest.java
+++ b/test/com/google/enterprise/adaptor/fs/AclBuilderTest.java
@@ -283,6 +283,26 @@
   }
 
   @Test
+  public void testReadAttributesPermNotNeeded() throws Exception {
+    AclFileAttributeView aclView = new AclView(
+        user("joe").type(ALLOW).perms(GENERIC_READ)
+            .flags(FILE_INHERIT, DIRECTORY_INHERIT),
+        user("mike").type(ALLOW)
+            .perms(READ_DATA, READ_ACL, READ_NAMED_ATTRS)
+            .flags(FILE_INHERIT, DIRECTORY_INHERIT));
+    AclBuilder aclBuilder = newBuilder(aclView);
+
+    // This node's ACLs should include both joe and mike.
+    Acl expected = emptyExpectedBuilder()
+        .setPermitUsers(users("joe", "mike")).build();
+    assertEquals(expected, aclBuilder.getAcl().build());
+    assertEquals(expected, 
+        aclBuilder.getInheritableByAllDescendentFoldersAcl().build());
+    assertEquals(expected,
+        aclBuilder.getInheritableByAllDescendentFilesAcl().build());
+  }
+
+  @Test
   public void testWindowsBuiltinUsers() throws Exception {
     ArrayList<AclEntry> entries = Lists.newArrayList();
     // Add all the permitted builtin users.
