Andrew nailed it -- there are two asyncore libraries on Vineet's computer. Look carefully at these two segements of Vineet's trace: you can see the tail of the filenames. Here's where the http_server is added to the socket map of medusa.asyncore: > es\medusa\asyncore.py:250 >>> self.socket.setblocking(0) > es\medusa\asyncore.py:251 >>> self._fileno = self.socket.fileno() > es\medusa\asyncore.py:252 >>> self.add_channel() And here's the loop() call, in python23/lib/asyncore. > ---------------------------------------------------------------------- > starting loop > hon23\lib\asyncore.py:180 >>> def loop(timeout=30.0, use_poll=0, map=None): > hon23\lib\asyncore.py:181 >>> if map is None: > hon23\lib\asyncore.py:182 >>> map = socket_map > hon23\lib\asyncore.py:184 >>> if use_poll: > hon23\lib\asyncore.py:190 >>> poll_fun = poll > hon23\lib\asyncore.py:192 >>> while map: > hon23\lib\asyncore.py:192 >>> while map: > ---------------------------------------------------------------------- > stopping loop Advice: delete medusa\asyncore.py, so that you're only dealing with the standard-library installation; and all will be well. -- Graham