--- /dev/null
+diff -urN oryg/__init__.py zmien/__init__.py
+--- oryg/__init__.py 2004-02-27 17:03:24.000000000 +0100
++++ zmien/__init__.py 2004-06-03 18:30:38.000000000 +0200
+@@ -80,23 +80,33 @@
+ contexts[id] = context
+
+ # Publish
+- x = Publish.old_publish(zope_request, module_name, after_list, debug)
+-
+- # Remove the context object
+ try:
++ x = Publish.old_publish(zope_request, module_name, after_list, debug)
++ except:
+ del contexts[id]
+- except KeyError:
+- # Some people has reported that sometimes a KeyError exception is
+- # raised in the previous line, I haven't been able to reproduce it.
+- # This try/except clause seems to work. I'd prefer to understand
+- # what is happening.
+- LOG('iHotfix', PROBLEM,
+- "The thread number %s don't has a context object associated." % id)
+-
+- return x
+-
++ raise
++ else:
++ # Remove the context object
++ try:
++ del contexts[id]
++ except KeyError:
++ # Some people has reported that sometimes a KeyError exception is
++ # raised in the previous line, I haven't been able to reproduce it.
++ # This try/except clause seems to work. I'd prefer to understand
++ # what is happening.
++ LOG('iHotfix', PROBLEM,
++ "The thread %s doesn't have a context object associated." % id)
++
++ return x
++
++
++if patch is False:
++ # Intercept I18NLayer (XXX it should depend on iHotfix, contact its
++ # authors).
++ if hasattr(Publish, 'old_publish'):
++ Publish.publish = Publish.old_publish
++ del Publish.old_publish
+
+-if not patch:
+ # XXX What happens when Localizer 1.0 and iHotfix are installed??
+ # Apply the patch
+ Publish.old_publish = Publish.publish