Okay this is scary but it is just adding a configure option to disable

* HTMLtree.c SAX2.c c14n.c catalog.c configure.in debugXML.c
  encoding.c entities.c nanoftp.c nanohttp.c parser.c relaxng.c
  testAutomata.c testC14N.c testHTML.c testRegexp.c testRelax.c
  testSchemas.c testXPath.c threads.c tree.c valid.c xmlIO.c
  xmlcatalog.c xmllint.c xmlmemory.c xmlreader.c xmlschemas.c
  example/gjobread.c include/libxml/HTMLtree.h include/libxml/c14n.h
  include/libxml/catalog.h include/libxml/debugXML.h
  include/libxml/entities.h include/libxml/nanohttp.h
  include/libxml/relaxng.h include/libxml/tree.h
  include/libxml/valid.h include/libxml/xmlIO.h
  include/libxml/xmlschemas.h include/libxml/xmlversion.h.in
  include/libxml/xpathInternals.h python/libxml.c:
  Okay this is scary but it is just adding a configure option
  to disable output, this touches most of the files.
Daniel
diff --git a/encoding.c b/encoding.c
index 25f8cc3..302cf56 100644
--- a/encoding.c
+++ b/encoding.c
@@ -512,6 +512,7 @@
     return(0);
 }
 
+#ifdef LIBXML_OUTPUT_ENABLED
 /**
  * UTF8Toascii:
  * @out:  a pointer to an array of bytes to store the result
@@ -594,6 +595,7 @@
     *inlen = processed - instart;
     return(0);
 }
+#endif /* LIBXML_OUTPUT_ENABLED */
 
 /**
  * isolat1ToUTF8:
@@ -683,6 +685,7 @@
 }
 
 
+#ifdef LIBXML_OUTPUT_ENABLED
 /**
  * UTF8Toisolat1:
  * @out:  a pointer to an array of bytes to store the result
@@ -770,6 +773,7 @@
     *inlen = processed - instart;
     return(0);
 }
+#endif /* LIBXML_OUTPUT_ENABLED */
 
 /**
  * UTF16LEToUTF8:
@@ -859,6 +863,7 @@
     return(0);
 }
 
+#ifdef LIBXML_OUTPUT_ENABLED
 /**
  * UTF8ToUTF16LE:
  * @outb:  a pointer to an array of bytes to store the result
@@ -978,6 +983,7 @@
     *inlen = processed - instart;
     return(0);
 }
+#endif /* LIBXML_OUTPUT_ENABLED */
 
 /**
  * UTF16BEToUTF8:
@@ -1071,6 +1077,7 @@
     return(0);
 }
 
+#ifdef LIBXML_OUTPUT_ENABLED
 /**
  * UTF8ToUTF16BE:
  * @outb:  a pointer to an array of bytes to store the result
@@ -1187,6 +1194,7 @@
     *inlen = processed - instart;
     return(0);
 }
+#endif /* LIBXML_OUTPUT_ENABLED */
 
 /************************************************************************
  *									*
@@ -1673,6 +1681,7 @@
 	return;
     }
     xmlNewCharEncodingHandler("UTF-8", UTF8ToUTF8, UTF8ToUTF8);
+#ifdef LIBXML_OUTPUT_ENABLED
     xmlUTF16LEHandler = 
           xmlNewCharEncodingHandler("UTF-16LE", UTF16LEToUTF8, UTF8ToUTF16LE);
     xmlUTF16BEHandler = 
@@ -1683,6 +1692,15 @@
 #ifdef LIBXML_HTML_ENABLED
     xmlNewCharEncodingHandler("HTML", NULL, UTF8ToHtml);
 #endif
+#else
+    xmlUTF16LEHandler = 
+          xmlNewCharEncodingHandler("UTF-16LE", UTF16LEToUTF8, NULL);
+    xmlUTF16BEHandler = 
+          xmlNewCharEncodingHandler("UTF-16BE", UTF16BEToUTF8, NULL);
+    xmlNewCharEncodingHandler("ISO-8859-1", isolat1ToUTF8, NULL);
+    xmlNewCharEncodingHandler("ASCII", asciiToUTF8, NULL);
+    xmlNewCharEncodingHandler("US-ASCII", asciiToUTF8, NULL);
+#endif /* LIBXML_OUTPUT_ENABLED */
 #ifndef LIBXML_ICONV_ENABLED
 #ifdef LIBXML_ISO8859X_ENABLED
     xmlRegisterCharEncodingHandlersISO8859x ();