--- cl/cl_screen.c.orig 2001-06-25 10:19:06.000000000 -0500 +++ cl/cl_screen.c 2003-07-02 18:28:29.000000000 -0500 @@ -369,6 +369,8 @@ fast: /* Set the terminal modes. */ if (tcsetattr(STDIN_FILENO, TCSASOFT | TCSADRAIN, &clp->vi_enter)) { + if (EINTR == errno) + goto fast; msgq(sp, M_SYSERR, "tcsetattr"); err: (void)cl_vi_end(sp->gp); return (1); @@ -485,6 +487,8 @@ #endif fast: if (tcsetattr(STDIN_FILENO, TCSADRAIN | TCSASOFT, &clp->ex_enter)) { + if (EINTR == errno) + goto fast; msgq(sp, M_SYSERR, "tcsetattr"); return (1); }