Fix event handle leak.
diff --git a/npipe_windows.go b/npipe_windows.go
index eb68896..a70a03c 100644
--- a/npipe_windows.go
+++ b/npipe_windows.go
@@ -307,6 +307,7 @@
 	if err != nil {
 		return nil, err
 	}
+	defer syscall.CloseHandle(overlapped.HEvent)
 	if err := connectNamedPipe(handle, overlapped); err != nil && err != error_pipe_connected {
 		if err == error_io_incomplete || err == syscall.ERROR_IO_PENDING {
 			_, err = waitForCompletion(handle, overlapped)
@@ -391,6 +392,7 @@
 	if err != nil {
 		return 0, err
 	}
+	defer syscall.CloseHandle(overlapped.HEvent)
 	var n uint32
 	err = syscall.ReadFile(c.handle, b, &n, overlapped)
 	return c.completeRequest(iodata{n, err}, c.readDeadline, overlapped)
@@ -402,6 +404,7 @@
 	if err != nil {
 		return 0, err
 	}
+	defer syscall.CloseHandle(overlapped.HEvent)
 	var n uint32
 	err = syscall.WriteFile(c.handle, b, &n, overlapped)
 	return c.completeRequest(iodata{n, err}, c.writeDeadline, overlapped)