    if (path == (char *) 0) {
	why = "unlink() called with null argument";
	lrq__setwhat(what);
goto solved2;
    } else if (errno == EFAULT) {
	path = "[corrupted path]"; /* so we don't derefernce garbage! */
	why = "unlink() called with corrupt pointer";
	lrq__setwhat(what);
goto solved2;
    }

solved:
    /* unlink: can't remove directory "%s": permission denied
     */
    lrq__setwhat("can't remove %s \"%%s\"", what);
solved2:
    if (why != lrqEwhy) lrq__setwhy(why);

    /* Restore errno */
    errno = savsyserrno;

    lrqE_error(ewhat, "unlink", path, lrqEwhat, lrqEwhy);
