diff --git a/src/client/New.cxx b/src/client/New.cxx
index 432e4076b..8cc1c021d 100644
--- a/src/client/New.cxx
+++ b/src/client/New.cxx
@@ -82,7 +82,8 @@ Client::Close() noexcept
 {
 	partition->instance.client_list->Remove(*this);
 
-	FullyBufferedSocket::Close();
+	if (FullyBufferedSocket::IsDefined())
+		FullyBufferedSocket::Close();
 
 	FormatInfo(client_domain, "[%u] closed", num);
 	delete this;