diff --git a/oscrypto/_osx/tls.py b/oscrypto/_osx/tls.py
index <HASH>..<HASH> 100644
--- a/oscrypto/_osx/tls.py
+++ b/oscrypto/_osx/tls.py
@@ -732,7 +732,10 @@ class TLSSocket(object):
         self._local_closed = True
         self._session_context = None
 
-        self._socket.shutdown(socket_.SHUT_RDWR)
+        try:
+            self._socket.shutdown(socket_.SHUT_RDWR)
+        except (socket_.error):  #pylint: disable=W0704
+            pass
 
     def close(self):
         """
diff --git a/oscrypto/_win/tls.py b/oscrypto/_win/tls.py
index <HASH>..<HASH> 100644
--- a/oscrypto/_win/tls.py
+++ b/oscrypto/_win/tls.py
@@ -869,7 +869,10 @@ class TLSSocket(object):
             secur32.DeleteSecurityContext(self._context_handle_pointer)
             self._context_handle_pointer = None
 
-            self._socket.shutdown(socket_.SHUT_RDWR)
+            try:
+                self._socket.shutdown(socket_.SHUT_RDWR)
+            except (socket_.error):  #pylint: disable=W0704
+                pass
 
         finally:
             if out_buffers:
Squelch socket exception if the connection is already closed when we try to shut it down