I found a case where my make_quixote_use_qpy module that Titus inlined fails. If you have a StaticDirectory(..., index_filenames=["index.html"]) and request "The_Directory/", but the index file doesn't exist, and self.list_directory is false, Quixote uses TemplateIO to make a "This directory does not allow its contents to be listed." document that's htmltext. In my ._q_traverse I call htmltext on the result (to wrap it in a header and footer), and get: File "/usr/local/lib/python2.4/Quixote-2.4-py2.4-linux-i686.egg/quixote/publish.py", line 256, in try_publish output = self.root_directory._q_traverse(components) File "/home/mso/svn/hazweb/rlink/lib/root.ptl", line 268, in _q_traverse output = htmltext(output) TypeError: coercing to Unicode: need string or buffer, htmltext found So the outer htmltext is the QPY-based one, but the one returned by TemplateIO isn't. I looked in quixote/utils.py and quixote/html/_py_htmltext.py but don't see any htmltext objects created at the top level, so I don't know why it's happening. My root directory is in a PTL module, if that matters. I tried deleting the .pyc but that didn't help. -- Mike Orr