OK, so you have a different IRIX version that Jan. I could replicate the problem there.
:( I'm running IRIX 6.5.29 (IRIX64): $ cat test.sh #!/bin/sh set -e testf () { test -f /nonexistent || return 1 return 0 } if testf; then exit 1 fi exit 0 $ ./test.sh ; echo $? 0 ... if I'm understanding correctly then that should be a "1", yes? P.S. Please see my other mail about "fetch" apparently not being called. Very strange...