goto done;
        }
 
-       if ( get_assert( op ) &&
-               ( test_filter( op, e, get_assertion( op )) != LDAP_COMPARE_TRUE ))
-       {
-               if ( !access_allowed( op, e, slap_schema.si_ad_entry,
-                       NULL, ACL_DISCLOSE, NULL ) )
-               {
-                       rs->sr_err = LDAP_NO_SUCH_OBJECT;
-               } else {
-                       rs->sr_err = LDAP_ASSERTION_FAILED;
-               }
-               goto return_results;
-       }
-
        rs->sr_err = slap_compare_entry( op, e, op->orc_ava );
 
 return_results:
 
                goto done;
        }
 
+       if ( get_assert( op ) &&
+               ( test_filter( op, e, get_assertion( op )) != LDAP_COMPARE_TRUE ))
+       {
+               rc = LDAP_ASSERTION_FAILED;
+               goto done;
+       }
+
        a = attrs_find( e->e_attrs, ava->aa_desc );
        if( a == NULL ) {
                rc = LDAP_NO_SUCH_ATTRIBUTE;