Patch MultiHook for downgrades from Zope 2.5 to Zope 2.4/2.3.
Zope 2.5 inserts an instance of SessionTraverser as a before publishing
traverse function into the Application object's root. When Zope 2.4 attempts
to use this as a before publishing traverse method, an error is raised because
the MultiHook is actually trying to call a broken object (because there
is no such class SessionTraverser in Zope 2.4, and Zope inserts "broken"
objects for persistent objects that it can't find on the filesystem).
As broken objects have no __call__ method, the symptom shows itself as
an 'AttributeError: __call__ in line 171 of BeforeTraverse.py.
This patch causes the error to be logged but not raised to the application
layer.
Install this like any other Product and restart your Zope.