diff --git a/serial/serialwin32.py b/serial/serialwin32.py
index d11a2c4..9cb2620 100644
--- a/serial/serialwin32.py
+++ b/serial/serialwin32.py
@@ -226,7 +226,7 @@
 
     def _close(self):
         """internal close port helper"""
-        if self._port_handle:
+        if self._port_handle is not None:
             # Restore original timeout values:
             win32.SetCommTimeouts(self._port_handle, self._orgTimeouts)
             if self._overlapped_read is not None:
@@ -237,6 +237,7 @@
                 self.cancel_write()
                 win32.CloseHandle(self._overlapped_write.hEvent)
                 self._overlapped_write = None
+            win32.CloseHandle(self._port_handle)
             self._port_handle = None
 
     def close(self):
@@ -312,6 +313,8 @@
                 # Wait for the write to complete.
                 #~ win32.WaitForSingleObject(self._overlapped_write.hEvent, win32.INFINITE)
                 err = win32.GetOverlappedResult(self._port_handle, self._overlapped_write, ctypes.byref(n), True)
+                if win32.GetLastError() == win32.ERROR_OPERATION_ABORTED:
+                    return n.value # canceled IO is no error
                 if n.value != len(data):
                     raise writeTimeoutError
             return n.value
diff --git a/serial/win32.py b/serial/win32.py
index 2fddf6b..31f21ee 100644
--- a/serial/win32.py
+++ b/serial/win32.py
@@ -219,6 +219,7 @@
 MAXDWORD = 4294967295  # Variable c_uint
 EV_RLSD = 32  # Variable c_int
 ERROR_SUCCESS = 0
+ERROR_OPERATION_ABORTED = 995
 ERROR_IO_INCOMPLETE = 996
 ERROR_IO_PENDING = 997  # Variable c_long
 MS_CTS_ON = 16  # Variable c_ulong
