diff --git a/lib/py/src/transport/TSocket.py b/lib/py/src/transport/TSocket.py
index 50ee67e..c8b4287 100644
--- a/lib/py/src/transport/TSocket.py
+++ b/lib/py/src/transport/TSocket.py
@@ -151,6 +151,8 @@
     def read(self, sz):
         try:
             buff = self.handle.recv(sz)
+        except socket.timeout as e:
+            raise TTransportException(type=TTransportException.TIMED_OUT, message="read timeout", inner=e)
         except socket.error as e:
             if (e.args[0] == errno.ECONNRESET and
                     (sys.platform == 'darwin' or sys.platform.startswith('freebsd'))):
@@ -161,8 +163,6 @@
                 self.close()
                 # Trigger the check to raise the END_OF_FILE exception below.
                 buff = ''
-            elif e.args[0] == errno.ETIMEDOUT:
-                raise TTransportException(type=TTransportException.TIMED_OUT, message="read timeout", inner=e)
             else:
                 raise TTransportException(message="unexpected exception", inner=e)
         if len(buff) == 0:
diff --git a/lib/py/test/test_socket.py b/lib/py/test/test_socket.py
index b732653..ab56a6e 100644
--- a/lib/py/test/test_socket.py
+++ b/lib/py/test/test_socket.py
@@ -11,6 +11,24 @@
 
 
 class TSocketTest(unittest.TestCase):
+    def test_socket_readtimeout_exception(self):
+        acc = ServerAcceptor(TServerSocket(port=0))
+        acc.start()
+
+        sock = TSocket(host="localhost", port=acc.port)
+        sock.open()
+        sock.setTimeout(1)
+        sock.write(b"sleep")
+
+        with self.assertRaises(TTransportException) as ctx:
+            sock.read(5)
+        exc = ctx.exception
+        self.assertEqual(exc.message, "read timeout")
+
+        acc.client.close() # this also blocks until the other thread is done
+        acc.close()
+        sock.close()
+
     def test_isOpen_checks_for_readability(self):
         # https://docs.python.org/3/library/socket.html#notes-on-socket-timeouts
         # https://docs.python.org/3/library/socket.html#socket.socket.settimeout
diff --git a/lib/py/test/test_sslsocket.py b/lib/py/test/test_sslsocket.py
index a5ea06a..2cbf5f8 100644
--- a/lib/py/test/test_sslsocket.py
+++ b/lib/py/test/test_sslsocket.py
@@ -19,6 +19,7 @@
 
 import inspect
 import logging
+import time
 import os
 import platform
 import ssl
@@ -76,7 +77,9 @@
         try:
             self._client = self._server.accept()
             if self._client:
-                self._client.read(5)  # hello
+                data = self._client.read(5)  # hello/sleep
+                if data == b"sleep":
+                    time.sleep(2)
                 self._client.write(b"there")
         except Exception:
             logging.exception('error on server side (%s):' % self.name)
