return edg_wll_Error(ctx, NULL, NULL);
 }
 
+int amIroot(const char *subj, char **fqans)
+{
+       /* XXX: fake implementation, should not be called from bkindex at all */
+       abort();
+}
 
 static int add_root(char *);
 static int read_roots(const char *);
 static int asyn_gethostbyaddr(char **, const char *, int, int, struct timeval *);
-static int amIroot(const char *, char **);
+int amIroot(const char *, char **);
 static int parse_limits(char *, int *, int *, int *);
 static int check_mkdir(const char *);
 
        return 0;
 }
 
-static int amIroot(const char *subj, char **fqans)
+int amIroot(const char *subj, char **fqans)
 {
        int     i;
        char    **f;
 
        int             ret;
 
        edg_wll_ResetError(ctx);
-       if (ctx->noAuth || strcmp(stat->owner,recip) == 0) return 1;
+       if (strcmp(stat->owner,recip) == 0 || amIroot(recip,NULL)) return 1;
 
        if (stat->acl == NULL) return 0;