Crys, did you actually run the tests for the 3.0 port of the patch? I
think accept() is broken, as it checks for _can_dup_socket and will
attempt to call os.dup().
I'm thinking that we should change the C class to not create new objects
on accept() and dup() -- instead, there should be methods _accept() and
_dup() that return new file descriptors. Then the subclass can
implement accept() and dup() properly without needing to call dup()
again, and the _base slot will no longer be needed. Tell you what, I'll
try this and submit a patch for testing on Windows later.