Here's a bit of code that should clear things up. class Folder: _q_exports = [] def _q_getname(self, request, component): print "_q_getname", component return self def _q_index(self, request): return "index" def __call__(self, request): return "call" def _q_getname(request, component): return Folder()._q_getname(request, component) Accessing the path /a/b/c will print in the debug log: _q_getname a _q_getname b _q_getname c and return the text "call". Accessing /a/b/c/ (note the trailing slash) will print the same thing in the debug log but return "index" as the text. /a/b/c/ is the same as "/a/b/c/_q_index". Now, I think the reason you are getting "a b a b" is because the FIX_TRAILING_SLASH option is turned on, your Folder object is not callable and you are actually accessing "/a/b". When Quixote is done traversing that path it ends up with a Folder instance. Since that object is not callable Quixote helpfully issues a redirect to "/a/b/". While you're in development I would suggest turning the FIX_TRAILING_SLASH option off. Neil