Hi, If you access a component which exists, but is not in _q_exports, it would be nice to get better message. Security: This way you can test which attributes exist and which don't exist. But if you don't trust your users, you should set SECURE_ERRORS to True. Patch is attached. Thomas --- publish.py_orig 2004-11-23 14:52:30.957496912 +0100 +++ publish.py 2004-11-23 14:42:25.181588848 +0100 @@ -804,6 +804,11 @@ "be replaced by _q_lookup()" % type(container)) object = container._q_getname(request, component) if object is None: + if hasattr(container, component): + raise errors.TraversalError( + private_msg="object %r has attribute %r, but it is not in _q_exports" % ( + container, + component)) raise errors.TraversalError( private_msg="object %r has no attribute %r" % ( container,