diff -ur zsh-4.3.10/Src/exec.c zsh-4.3.10+iPhone/Src/exec.c --- zsh-4.3.10/Src/exec.c 2009-03-16 08:27:07.000000000 -1000 +++ zsh-4.3.10+iPhone/Src/exec.c 2018-09-06 13:51:01.000000000 -1000 @@ -425,7 +425,7 @@ * then check for an errno equal to ENOEXEC. This errno is set * * if the process file has the appropriate access permission, * * but has an invalid magic number in its header. */ - if ((eno = errno) == ENOEXEC || eno == ENOENT) { + if ((eno = errno) == ENOEXEC || (eno = errno) == EPERM || eno == ENOENT) { char execvebuf[POUNDBANGLIMIT + 1], *ptr, *ptr2, *argv0; int fd, ct, t0;