diff --git a/common-channel.c b/common-channel.c
index 09fe42567b22c6485626254fc9bc82f98ff8cb4b..21051841c62d8342b81a06beb2459ba4d134591b 100644
--- a/common-channel.c
+++ b/common-channel.c
@@ -572,6 +572,11 @@ void recv_msg_channel_request() {
 	
 	channel = getchannel();
 
+	if (channel->sent_close) {
+		TRACE(("leave recv_msg_channel_request: already closed channel"))
+		return;
+	}
+
 	if (channel->type->reqhandler) {
 		channel->type->reqhandler(channel);
 	} else {