Adam Tkac 1b61987
diff -up netkit-telnet-0.17/telnet/sys_bsd.c.errnosysbsd netkit-telnet-0.17/telnet/sys_bsd.c
Adam Tkac 1b61987
--- netkit-telnet-0.17/telnet/sys_bsd.c.errnosysbsd	2007-09-20 10:57:58.000000000 +0200
Adam Tkac 1b61987
+++ netkit-telnet-0.17/telnet/sys_bsd.c	2007-09-20 11:10:08.000000000 +0200
Adam Tkac 1b61987
@@ -375,6 +375,7 @@ TerminalNewMode(int f)
Adam Tkac 1b61987
     int onoff;
Adam Tkac 1b61987
     int old;
Adam Tkac 1b61987
     cc_t esc;
Adam Tkac 1b61987
+    int err;
Adam Tkac 1b61987
 
Adam Tkac 1b61987
     globalmode = f&~MODE_FORCE;
Adam Tkac 1b61987
     if (prevmode == f)
Adam Tkac 1b61987
@@ -407,6 +408,12 @@ TerminalNewMode(int f)
c6dbd75
 	    tcsetattr(tin, TCSADRAIN, &tmp_tc);
c6dbd75
 #endif	/* USE_TERMIO */
c6dbd75
 	    old = ttyflush(SYNCHing|flushout);
c6dbd75
+            if (old < 0) {
Adam Tkac 1b61987
+	      err = errno;
Adam Tkac 1b61987
+              if (! ((err == EINTR) || (err == EAGAIN) || (err == ENOSPC))) {
c6dbd75
+                break;
c6dbd75
+              }
c6dbd75
+            }
c6dbd75
 	} while (old < 0 || old > 1);
c6dbd75
     }
c6dbd75