diff --git a/python/local/ovms_module/ovms/ptd/_vmsptd.pyx b/python/local/ovms_module/ovms/ptd/_vmsptd.pyx
index f95a3736a0ecd03b7d510c697a9e499df738e945_cHl0aG9uL2xvY2FsL292bXNfbW9kdWxlL292bXMvcHRkL192bXNwdGQucHl4..181aebe205c5ba36f0b8561f8bb4bab7d468849d_cHl0aG9uL2xvY2FsL292bXNfbW9kdWxlL292bXMvcHRkL192bXNwdGQucHl4 100755
--- a/python/local/ovms_module/ovms/ptd/_vmsptd.pyx
+++ b/python/local/ovms_module/ovms/ptd/_vmsptd.pyx
@@ -364,5 +364,5 @@
     "status, res = readw(handler)"
     cdef int efn = EFN_C_ENF
     cdef unsigned short s
-    # if a read is already pending, wait for completion
+    # if a read is already pending, raise an Error
     if handler.handler.read_status != 0:
@@ -368,7 +368,5 @@
     if handler.handler.read_status != 0:
-        while handler.handler.read_status != 2:
-            s = sys_hiber()
-        s = SS__NORMAL
+        raise OSError("Read already active on this Ptd")
     handler.handler.read_status = 0
     (<ptd_buf *>(handler.handler.read_buf)).status = 0
     with nogil: