diff --git a/server-client.c b/server-client.c
index 6aa2a0fa..b6d4870d 100644
--- a/server-client.c
+++ b/server-client.c
@@ -808,6 +808,8 @@ server_client_msg_dispatch(struct client *c)
 		if (imsg.hdr.peerid != PROTOCOL_VERSION) {
 			server_write_client(c, MSG_VERSION, NULL, 0);
 			c->flags |= CLIENT_BAD;
+			if (imsg.fd != -1)
+				close(imsg.fd);
 			imsg_free(&imsg);
 			continue;
 		}