Issue #14300: Under Windows, sockets created using socket.dup() now allow overlapped I/O.
Patch by sbt.
diff --git a/Misc/NEWS b/Misc/NEWS
index 3423856..a893f6b 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -37,6 +37,9 @@
 Library
 -------
 
+- Issue #14300: Under Windows, sockets created using socket.dup() now allow
+  overlapped I/O.  Patch by sbt.
+
 - Issue #13872: socket.detach() now marks the socket closed (as mirrored
   in the socket repr()).  Patch by Matt Joiner.
 
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index d741d2c..59a2f28 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -381,7 +381,7 @@
         return INVALID_SOCKET;
 
     return WSASocket(FROM_PROTOCOL_INFO, FROM_PROTOCOL_INFO,
-                     FROM_PROTOCOL_INFO, &info, 0, 0);
+                     FROM_PROTOCOL_INFO, &info, 0, WSA_FLAG_OVERLAPPED);
 }
 #define SOCKETCLOSE closesocket
 #else