diff --git a/common-channel.c b/common-channel.c
index 0cd6ef88ff1b92461ccb6c92b28c33739bee7554..11760ecd75a648180ee25ae1f3a09106895b9212 100644
--- a/common-channel.c
+++ b/common-channel.c
@@ -273,14 +273,14 @@ static void checkclose(struct Channel *channel) {
 
 	if (!channel->senteof
 		&& channel->readfd == FD_CLOSED 
-		&& (channel->extrabuf == NULL || channel->errfd == FD_CLOSED)) {
+		&& (channel->extrabuf != NULL || channel->errfd == FD_CLOSED)) {
 		send_msg_channel_eof(channel);
 	}
 
 	if (!channel->sentclosed
 		&& channel->writefd == FD_CLOSED
 		&& channel->readfd == FD_CLOSED
-		&& (channel->extrabuf == NULL || channel->errfd == FD_CLOSED)) {
+		&& (channel->extrabuf != NULL || channel->errfd == FD_CLOSED)) {
 		send_msg_channel_close(channel);
 	}