Using CGIXMLRPCRequestHandler results in a timeout if running behind Internet Information Server/CGI. Maybe there is no eof on sys.stdin under IIS and python continues to read even if there is no more data available. The same runs without problems under Apache/CGI. Reading only os.environ['CONTENT_LENGTH'] bytes from sys.stdin will as well work under IIS (see patch).