const char                      *attr;
        int                             st_same_attr = 0;
        static AccessControlState       state_init = ACL_STATE_INIT;
-       BackendDB                       *be_orig;
 
        assert( e != NULL );
        assert( desc != NULL );
        /* this is enforced in backend_add() */
        if ( op->o_bd->bd_info->bi_access_allowed ) {
                /* delegate to backend */
-               ret = op->o_bd->bd_info->bi_access_allowed( op, e, desc, val, access, state, &mask );
+               ret = op->o_bd->bd_info->bi_access_allowed( op, e,
+                               desc, val, access, state, &mask );
 
        } else {
-               /* use default (but pass through frontend for global ACL overlays) */
-               be_orig = op->o_bd;
+#if 0
+               /* FIXME: this doesn't work because frontendDB doesn't have
+                * the right rootn, ACLs and so. */
+               BackendDB       *be_orig;
 
+               /* use default (but pass through frontend
+                * for global ACL overlays) */
+               be_orig = op->o_bd;
                op->o_bd = frontendDB;
-               ret = frontendDB->bd_info->bi_access_allowed( op, e, desc, val, access, state, &mask );
+               ret = frontendDB->bd_info->bi_access_allowed( op, e,
+                               desc, val, access, state, &mask );
                op->o_bd = be_orig;
+#endif
+               ret = slap_access_allowed( op, e, 
+                               desc, val, access, state, &mask );
        }
 
        if ( !ret ) {