--- pdksh-5.2.14/c_sh.c.ptr 2005-08-08 16:09:40.000000000 +0200 +++ pdksh-5.2.14/c_sh.c 2005-08-08 16:11:07.000000000 +0200 @@ -423,6 +423,8 @@ char **wp; { register struct source *s; + Source *sold = source; + int ret = -1; if (ksh_getopt(wp, &builtin_opt, null) == '?') return 1; @@ -456,7 +458,10 @@ exstat = subst_exstat; } - return shell(s, FALSE); + /* note shell() calls compile() which changes source */ + ret = shell(s, FALSE); + source = sold; + return ret; } int