--- telnetd/telnetd.c 2005-01-19 14:37:25.000000000 +0000 +++ telnetd/telnetd.c.new 2005-01-19 14:48:12.000000000 +0000 @@ -697,6 +697,7 @@ int on = 1; char *HE; const char *IM; + int pty_read_ok = 0; /* track whether the pty read has worked yet */ /* * Initialize the slc mapping table. @@ -1016,12 +1017,13 @@ * off the master side before the slave side is * opened, we get EIO. */ - if (pcc < 0 && (errno == EWOULDBLOCK || errno == EIO)) { + if (pcc < 0 && (errno == EWOULDBLOCK || (errno == EIO && pty_read_ok == 0))) { pcc = 0; } else { if (pcc <= 0) break; + pty_read_ok = 1; /* mark connection up for read */ #ifdef LINEMODE /* * If ioctl from pty, pass it through net