diff -up tcsh-6.17.00/sh.glob.c.orig tcsh-6.17.00/sh.glob.c --- tcsh-6.17.00/sh.glob.c.orig 2010-10-06 10:27:21.015893878 +0200 +++ tcsh-6.17.00/sh.glob.c 2010-10-06 10:28:17.503914951 +0200 @@ -881,11 +881,13 @@ backeval(struct blk_buf *bb, struct Strb stderror(ERR_OLD); alias(¶ml); t = syntax(paraml.next, ¶ml, 0); + if (t == NULL) + return; cleanup_push(t, syntax_cleanup); /* The F_BACKQ flag must set so the job output is correct if * printexitvalue is set. If it's not set, the job output * will have "Exit N" appended where N is the exit status. */ - t->t_dflg = F_BACKQ; + t->t_dflg = F_BACKQ|F_NOFORK; if (seterr) stderror(ERR_OLD); #ifdef SIGTSTP