diff --git a/HTMLparser.c b/HTMLparser.c
index ccce9ef71afc0069078fb992d04916763eb0db59_SFRNTHBhcnNlci5j..26128413cae54a5586921993efe8edd0bf8babab_SFRNTHBhcnNlci5j 100644
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -6338,4 +6338,5 @@
     if(enc==XML_CHAR_ENCODING_UTF8 || buf->encoder)
 	ctxt->charset=XML_CHAR_ENCODING_UTF8;
     if (sax != NULL) {
+#ifdef LIBXML_SAX1_ENABLED
 	if (ctxt->sax != (xmlSAXHandlerPtr) &htmlDefaultSAXHandler)
@@ -6341,4 +6342,5 @@
 	if (ctxt->sax != (xmlSAXHandlerPtr) &htmlDefaultSAXHandler)
+#endif
 	    xmlFree(ctxt->sax);
 	ctxt->sax = (htmlSAXHandlerPtr) xmlMalloc(sizeof(htmlSAXHandler));
 	if (ctxt->sax == NULL) {
diff --git a/SAX2.c b/SAX2.c
index ccce9ef71afc0069078fb992d04916763eb0db59_U0FYMi5j..26128413cae54a5586921993efe8edd0bf8babab_U0FYMi5j 100644
--- a/SAX2.c
+++ b/SAX2.c
@@ -2998,4 +2998,5 @@
 void
 htmlDefaultSAXHandlerInit(void)
 {
+#ifdef LIBXML_SAX1_ENABLED
     xmlSAX2InitHtmlDefaultSAXHandler((xmlSAXHandlerPtr) &htmlDefaultSAXHandler);
@@ -3001,4 +3002,5 @@
     xmlSAX2InitHtmlDefaultSAXHandler((xmlSAXHandlerPtr) &htmlDefaultSAXHandler);
+#endif
 }
 
 #endif /* LIBXML_HTML_ENABLED */
diff --git a/globals.c b/globals.c
index ccce9ef71afc0069078fb992d04916763eb0db59_Z2xvYmFscy5j..26128413cae54a5586921993efe8edd0bf8babab_Z2xvYmFscy5j 100644
--- a/globals.c
+++ b/globals.c
@@ -405,7 +405,7 @@
     xmlSAX2GetColumnNumber
 };
 
-#ifdef LIBXML_HTML_ENABLED
+#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_SAX1_ENABLED)
 /**
  * htmlDefaultSAXHandler:
  *
@@ -667,7 +667,7 @@
     return(old);
 }
 
-#ifdef LIBXML_HTML_ENABLED
+#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_SAX1_ENABLED)
 #undef	htmlDefaultSAXHandler
 xmlSAXHandlerV1 *
 __htmlDefaultSAXHandler(void) {