It seems a well established fact that ZCatalog does not work properly with virtual hosting. I've tried Evan Simpson's ZCatalog patch, but to no avail: ***DOES NOT WORK def resolve_url(self, path, REQUEST): """ Attempt to resolve a url into an object in the Zope namespace. The url may be absolute (site-relative) or a catalog path style url. If no object is found, None is returned. No exceptions are raised. """ pparts = filter(None, string.split(path, '/')) try: obj = getattr(self.aq_parent, pparts.pop(0)) while pparts: obj = obj[pparts.pop(0)] return obj except: return The following *does* seem to work. Can someone tell me why? Are there any nasty side effects I should know about, or is this a good way of getting ZCatalog to play nice with Virtual Hosting? ***WORKS def resolve_url(self, path, REQUEST): """ Attempt to resolve a url into an object in the Zope namespace. The url may be absolute or a catalog path style url. If no object is found, None is returned. No exceptions are raised. """ pparts=filter(None, string.split(path, '/')) try: obj=getattr(self.aq_parent, pparts.pop(0)) while pparts: obj=getattr(obj, pparts.pop(0)) return obj except: return -- Ed Goppelt