Fix for issue 4332 in trunk.
diff --git a/Lib/asyncore.py b/Lib/asyncore.py
index 9cd4961..75fd5ae 100644
--- a/Lib/asyncore.py
+++ b/Lib/asyncore.py
@@ -615,6 +615,6 @@
             fcntl.fcntl(fd, fcntl.F_SETFL, flags)
 
         def set_file(self, fd):
-            self._fileno = fd
             self.socket = file_wrapper(fd)
+            self._fileno = self.socket.fileno()
             self.add_channel()