diff --git a/LCS/Common/src/Net/Socket.cc b/LCS/Common/src/Net/Socket.cc
index 12ce7fc82402ff5705313d50834f731f43fe1c0b..37010c1c69bf50e4f5d269d4006204ee55326966 100644
--- a/LCS/Common/src/Net/Socket.cc
+++ b/LCS/Common/src/Net/Socket.cc
@@ -27,6 +27,7 @@
 #include <Common/StringUtil.h>
 #include <Common/hexdump.h>
 #include <Common/Exception.h>
+#include <Common/Thread/Cancellation.h>
 
 #ifndef USE_NOSOCKETS
 
@@ -181,6 +182,8 @@ Socket::Socket (const string&	socketname,
 //
 Socket::~Socket()
 {
+        ScopedDelayCancellation dc; // close is and unlink can be a cancellation point
+
 	LOG_TRACE_OBJ (formatString("~Socket(%d)", itsSocketID));
 
         if (itsSocketID >=0 && close() != SK_OK) {