diff -urN dropbear-0.47.orig/common-channel.c dropbear-0.47/common-channel.c --- dropbear-0.47.orig/common-channel.c 2005-12-09 06:42:31.000000000 +0100 +++ dropbear-0.47/common-channel.c 2006-02-05 00:03:37.000000000 +0100 @@ -377,7 +377,7 @@ cbuf_incrread(cbuf, len); channel->recvdonelen += len; - if (fd == channel->writefd && len == maxlen && channel->recveof) { + if (fd == channel->writefd && len == maxlen && channel->recveof && cbuf_getused(channel->writebuf) == 0) { /* Check if we're closing up */ closewritefd(channel); TRACE(("leave writechannel: recveof set"))