SF bug 110843:  Low FD_SETSIZE limit on Win32 (PR#41).  Boosted to 512.
diff --git a/Misc/NEWS b/Misc/NEWS
index ed29fcb..2b1d7b8 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -27,6 +27,14 @@
   fit in an int.  In 1.6 and earlier, a negative long formatted
   via %u raised an error if it was too big to fit in an int.
 
+Windows changes
+
+- select module:  By default under Windows, a select() call
+  can specify no more than 64 sockets.  Python now boosts
+  this Microsoft default to 512.  If you need even more than
+  that, see the MS docs (you'll need to #define FD_SETSIZE
+  and recompile Python from source).
+
 
 What's New in Python 2.0?
 =========================
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index 008ffa4..de910c6 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -1,4 +1,3 @@
-
 /* select - Module containing unix select(2) call.
    Under Unix, the file descriptors are small integers.
    Under Win32, select only exists for sockets, and sockets may
@@ -9,6 +8,16 @@
 
 #include "Python.h"
 
+/* Windows #defines FD_SETSIZE to 64 if FD_SETSIZE isn't already defined.
+   64 is too small (too many people have bumped into that limit).
+   Here we boost it.
+   Users who want even more than the boosted limit should #define
+   FD_SETSIZE higher before this; e.g., via compiler /D switch.
+*/
+#if defined(MS_WINDOWS) && !defined(FD_SETSIZE)
+#define FD_SETSIZE 512
+#endif 
+
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif