On a lark, I just tried renaming the __init__.py file for a Quixote root namespace to __init__.ptl. I expected importing the package to fail; to my surprise, it appeared to work -- but there's nothing in the package. Here's what I get with __init__.py: >>> from quixote import enable_ptl >>> enable_ptl() >>> import splat.web >>> print dir(splat.web) ['TraversalError', '__builtins__', '__doc__', '__file__', '__name__', '__path__', '__revision__', '_q_exports', '_q_getname', '_q_index', 'about', 'cgi', 'display', 'filter', 'footer', 'header', 'index', 'prefs', 'quixote', 'set_display', 'set_filter', 'splat', 'util'] If I rename splat/web/__init__.py to __init__.ptl, I get this: >>> from quixote import enable_ptl >>> enable_ptl() >>> import splat.web >>> print dir(splat.web) ['__doc__', '__file__', '__name__', '__path__'] Yes, I made sure to delete *.pyc and *.ptlc in between runs. Note that even though the contents of __init__.ptl are apparently ignored, I can import modules in the splat.web package. IMHO, __init__.ptl should either work just like __init__.py, or it should not work at all -- ie. I should get an ImportError. I think I prefer the former -- does anyone else care? Neil or Andrew, any idea how hard it would be for Quixote's import hook to fix this? Oh, Neil, do you think that using the cimport extension make a difference here? Greg