We've released new versions of QP, Qpy, and Durus. They can be found at http://www.mems-exchange.org/software/ as usual. Changes in QP: Make the HTTP_AGENT value follow the specific format described in the CGI specification, allowing for multi-line Accept headers as well as for multiple Accept headers. Fine-tune the parsing of 'accept' headers as suggested by Mike Watkins. Allow for other other affirmative values of the HTTPS environment variable. This echoes a patch for quixote posted to the quixote list by Hamish Lawson. If there is no debug address, make sure that the current host is a live host before actually sending email. To qpcensus.py, add a new way to verify that instances satisfy constraints that go beyond attribute specifications. In particular, if an instance has a "list_validation_errors" method defined, qpcensus.py will call it to see if there are any such problems to report. Protect getpeername() call with a try/except to avoid unexpected server termination when the remote host has already closed the connection. Changes in Qpy: Update primary setup.py files so that the use of distutils, rather than setuptools, can be forced by having USE_DISTUTILS defined in the environment. Call off any checking for undefined names after a * import. Add __file__ the qpyrun environment