diff --git a/ChangeLog b/ChangeLog
index 77c0be4..34a6fed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Fri Jan 10 14:13:03 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+	* python/libxml.py python/libxml.c python/libxml2-python-api.xml:
+	  fixed bug #102181 by applying the suggested change and fixing
+	  the generation/registration problem.
+
 Fri Jan 10 13:47:55 CET 2003 Daniel Veillard <daniel@veillard.com>
 
 	* HTMLparser.c: fixed bug #102960 by reusing the XML name parsing
diff --git a/python/libxml.c b/python/libxml.c
index b48389b..b67c4eb 100644
--- a/python/libxml.c
+++ b/python/libxml.c
@@ -2195,6 +2195,7 @@
     {(char *) "outputBufferCreate", libxml_xmlCreateOutputBuffer, METH_VARARGS, NULL},
     {(char *) "inputBufferCreate", libxml_xmlCreateInputBuffer, METH_VARARGS, NULL},
     {(char *) "setEntityLoader", libxml_xmlSetEntityLoader, METH_VARARGS, NULL},
+    {(char *)"xmlRegisterErrorHandler", libxml_xmlRegisterErrorHandler, METH_VARARGS, NULL },
     {NULL, NULL, 0, NULL}
 };
 
diff --git a/python/libxml.py b/python/libxml.py
index a3d1bdd..d6c782d 100644
--- a/python/libxml.py
+++ b/python/libxml.py
@@ -462,6 +462,26 @@
 PARSER_SUBST_ENTITIES=4
 
 #
-# Everything below this point is automatically generated
+# register the libxml2 error handler
 #
+def registerErrorHandler(f, ctx):
+    """Register a Python written function to for error reporting.
+       The function is called back as f(ctx, error). """
+    import sys
+    if not sys.modules.has_key('libxslt'):
+        # normal behaviour when libxslt is not imported
+        ret = libxml2mod.xmlRegisterErrorHandler(f,ctx)
+    else:
+        # when libxslt is already imported, one must
+        # use libxst's error handler instead
+        import libxslt
+        ret = libxslt.registerErrorHandler(f,ctx)
+    return ret
+
+# WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+#
+# Everything before this line comes from libxml.py 
+# Everything after this line is automatically generated
+#
+# WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
 
diff --git a/python/libxml2-python-api.xml b/python/libxml2-python-api.xml
index 739b066..7e8e922 100644
--- a/python/libxml2-python-api.xml
+++ b/python/libxml2-python-api.xml
@@ -14,12 +14,6 @@
       <return type='xmlNodePtr' info="A new element node"/>
       <arg name='name' type='xmlChar *' info='the node name'/>
     </function>
-    <function name='xmlRegisterErrorHandler' file='python'>
-      <info>Register a Python written function to for error reporting. The function is called back as f(ctx, error).</info>
-      <return type='int' info="1 in case of success, 0 or -1 in case of error"/>
-      <arg name='f' type='pythonObject' info='the python function'/>
-      <arg name='ctx' type='pythonObject' info='a context for the callback'/>
-    </function>
     <function name='xmlCreatePushParser' file='python'>
       <info>Create a progressive XML parser context to build either an event flow if the SAX object is not None, or a DOM tree otherwise.</info>
       <return type='xmlParserCtxtPtr' info="the parser context or None in case of error"/>
diff --git a/python/libxml2class.txt b/python/libxml2class.txt
index 2fbc707..a96bd53 100644
--- a/python/libxml2class.txt
+++ b/python/libxml2class.txt
@@ -124,7 +124,6 @@
 htmlCreatePushParser()
 htmlSAXParseFile()
 newNode()
-registerErrorHandler()
 setEntityLoader()
 
 # functions from module tree
