# "return" in trap should not use last command's exitcode,
# but exitcode on entering the trap.
trap "echo TERM;return" term
f() {
	(sleep 1; kill $$) &
	until (exit 42) do (exit 42); done
}
f
echo 42:$?