- (dtucker) [channels.c serverloop.c] Apply the bug #1102 workaround to ptys
   only, otherwise sshd can hang exiting non-interactive sessions.
diff --git a/serverloop.c b/serverloop.c
index e370f63..18f1a10 100644
--- a/serverloop.c
+++ b/serverloop.c
@@ -394,7 +394,8 @@
 #ifndef PTY_ZEROREAD
 		} else if (len <= 0) {
 #else
-		} else if (len < 0 || (len == 0 && errno != 0)) {
+		} else if ((!isatty(fdout) && len <= 0) ||
+		    (isatty(fdout) && (len < 0 || (len == 0 && errno != 0)))) {
 #endif
 			fdout_eof = 1;
 		} else {
@@ -411,7 +412,8 @@
 #ifndef PTY_ZEROREAD
 		} else if (len <= 0) {
 #else
-		} else if (len < 0 || (len == 0 && errno != 0)) {
+		} else if ((!isatty(fderr) && len <= 0) ||
+		    (isatty(fderr) && (len < 0 || (len == 0 && errno != 0)))) {
 #endif
 			fderr_eof = 1;
 		} else {