--- ./sh.func.c 2006-08-24 13:56:31.000000000 -0700 +++ tcsh-6.16.00/sh.func.c 2008-09-25 07:41:48.000000000 -0700 @@ -688,7 +688,8 @@ dorepeat(Char **v, struct command *kp) reexecute(kp); --i; } - cleanup_until(&pintr_disabled); + if (setintr && pintr_disabled == 1) + cleanup_until(&pintr_disabled); donefds(); }