Large sync between my W3C base and Gnome's one:

- parser.[ch]: added xmlGetFeaturesList() xmlGetFeature() and xmlAddFeature()
- tree.[ch]: added xmlAddChildList()
- xmllint.c: MAP_FAILED macro test
- parser.h: added xmlParseCtxtExternalEntity()
- valid.c: applied bug fixes removed warning
- tree.c: added CDATA block to elements content
- testSAX.c: cleanup of output
- testHTML.c: added SAX testing
- encoding.c: better error recovery
- SAX.c, parser.c: fixed one of the external entity processing of the OASis testsuite
- Makefile.am: added HTML SAX regression tests
- configure.in: bumped to 2.2.2
- test/HTML/ result/HTML: added a few of HTML tests, and added the SAX results

Daniel
diff --git a/ChangeLog b/ChangeLog
index 9babfb0..add96c7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+Sat Aug 12 16:42:37 EDT 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+	* parser.[ch]: added xmlGetFeaturesList() xmlGetFeature()
+	  and xmlAddFeature()
+	* tree.[ch]: added xmlAddChildList()
+	* xmllint.c: MAP_FAILED macro test
+	* parser.h: added xmlParseCtxtExternalEntity()
+	* valid.c: applied bug fixes removed warning
+	* tree.c: added CDATA block to elements content
+	* testSAX.c: cleanup of output
+	* testHTML.c: added SAX testing
+	* encoding.c: better error recovery
+	* SAX.c, parser.c: fixed one of the external entity processing
+	  of the OASis testsuite
+	* Makefile.am: added HTML SAX regression tests
+	* configure.in: bumped to 2.2.2
+	* test/HTML/ result/HTML: added a few of HTML tests, and added the
+	  SAX results
+
 Fri Aug  4 11:21:50 PDT 2000 Daniel Veillard <Daniel.Veillard@w3.org>
 
 	* configure.in: patch for HP compiler
diff --git a/HTMLparser.c b/HTMLparser.c
index 0877f4c..4968463 100644
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -2168,53 +2168,76 @@
 void
 htmlParseComment(htmlParserCtxtPtr ctxt) {
     xmlChar *buf = NULL;
-    int len = 0;
+    int len;
     int size = HTML_PARSER_BUFFER_SIZE;
-    register xmlChar s, r, q;
+    int q, ql;
+    int r, rl;
+    int cur, l;
+    xmlParserInputState state;
 
     /*
      * Check that there is a comment right here.
      */
-    if ((CUR != '<') || (NXT(1) != '!') ||
+    if ((RAW != '<') || (NXT(1) != '!') ||
         (NXT(2) != '-') || (NXT(3) != '-')) return;
 
+    state = ctxt->instate;
+    ctxt->instate = XML_PARSER_COMMENT;
+    SHRINK;
+    SKIP(4);
     buf = (xmlChar *) xmlMalloc(size * sizeof(xmlChar));
     if (buf == NULL) {
 	fprintf(stderr, "malloc of %d byte failed\n", size);
+	ctxt->instate = state;
 	return;
     }
-    q = r = '-'; /* 0 or '-' to cover our ass against <!--> and <!---> ? !!! */
-    SKIP(4);
-    s = CUR;
-    
-    while (IS_CHAR(s) &&
-           ((s != '>') || (r != '-') || (q != '-'))) {
-	if (len + 1 >= size) {
+    q = CUR_CHAR(ql);
+    NEXTL(ql);
+    r = CUR_CHAR(rl);
+    NEXTL(rl);
+    cur = CUR_CHAR(l);
+    len = 0;
+    while (IS_CHAR(cur) &&
+           ((cur != '>') ||
+	    (r != '-') || (q != '-'))) {
+	if (len + 5 >= size) {
 	    size *= 2;
 	    buf = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar));
 	    if (buf == NULL) {
 		fprintf(stderr, "realloc of %d byte failed\n", size);
+		ctxt->instate = state;
 		return;
 	    }
 	}
-	buf[len++] = s;
-        NEXT;
+	COPY_BUF(ql,buf,len,q);
 	q = r;
-	r = s;
-	s = CUR;
-    }
-    buf[len - 2] = 0;
-    if (!IS_CHAR(s)) {
-	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
-	    ctxt->sax->error(ctxt->userData, "Comment not terminated \n<!--%.50s\n", buf);
-	ctxt->wellFormed = 0;
-    } else {
-        NEXT;
-	if ((ctxt->sax != NULL) && (ctxt->sax->comment != NULL)) {
-	    ctxt->sax->comment(ctxt->userData, buf);
+	ql = rl;
+	r = cur;
+	rl = l;
+	NEXTL(l);
+	cur = CUR_CHAR(l);
+	if (cur == 0) {
+	    SHRINK;
+	    GROW;
+	    cur = CUR_CHAR(l);
 	}
     }
-    xmlFree(buf);
+    buf[len] = 0;
+    if (!IS_CHAR(cur)) {
+	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
+	    ctxt->sax->error(ctxt->userData,
+	                     "Comment not terminated \n<!--%.50s\n", buf);
+	ctxt->errNo = XML_ERR_COMMENT_NOT_FINISHED;
+	ctxt->wellFormed = 0;
+	xmlFree(buf);
+    } else {
+        NEXT;
+	if ((ctxt->sax != NULL) && (ctxt->sax->comment != NULL) &&
+	    (!ctxt->disableSAX))
+	    ctxt->sax->comment(ctxt->userData, buf);
+	xmlFree(buf);
+    }
+    ctxt->instate = state;
 }
 
 /**
@@ -2472,10 +2495,36 @@
 	    handler = xmlFindCharEncodingHandler((const char *) encoding);
 	    if (handler != NULL) {
 		xmlSwitchToEncoding(ctxt, handler);
+		ctxt->charset = XML_CHAR_ENCODING_UTF8;
 	    } else {
 		ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    }
 	}
+
+	if ((ctxt->input->buf != NULL) &&
+	    (ctxt->input->buf->encoder != NULL) &&
+	    (ctxt->input->buf->raw != NULL) &&
+	    (ctxt->input->buf->buffer != NULL)) {
+	    int nbchars;
+	    int processed;
+
+	    /*
+	     * convert as much as possible to the parser reading buffer.
+	     */
+	    processed = ctxt->input->cur - ctxt->input->base;
+	    xmlBufferShrink(ctxt->input->buf->buffer, processed);
+	    nbchars = xmlCharEncInFunc(ctxt->input->buf->encoder,
+		                       ctxt->input->buf->buffer,
+				       ctxt->input->buf->raw);
+	    if (nbchars < 0) {
+		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
+		    ctxt->sax->error(ctxt->userData, 
+		     "htmlCheckEncoding: encoder error\n");
+		ctxt->errNo = XML_ERR_INVALID_ENCODING;
+	    }
+	    ctxt->input->base =
+	    ctxt->input->cur = ctxt->input->buf->buffer->content;
+	}
     }
 }
 
@@ -2956,7 +3005,6 @@
 
 void
 htmlParseElement(htmlParserCtxtPtr ctxt) {
-    const xmlChar *openTag = CUR_PTR;
     xmlChar *name;
     xmlChar *currentNode = NULL;
     htmlElemDescPtr info;
@@ -3030,8 +3078,9 @@
         NEXT;
     } else {
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
-	    ctxt->sax->error(ctxt->userData, "Couldn't find end of Start Tag\n%.30s\n",
-	                     openTag);
+	    ctxt->sax->error(ctxt->userData,
+		             "Couldn't find end of Start Tag %s\n",
+	                     name);
 	ctxt->wellFormed = 0;
 
 	/*
@@ -3183,6 +3232,15 @@
     SKIP_BLANKS;
 
     /*
+     * Parse possible comments before any content
+     */
+    while ((CUR == '<') && (NXT(1) == '!') &&
+           (NXT(2) == '-') && (NXT(3) == '-')) {
+        htmlParseComment(ctxt);	   
+	SKIP_BLANKS;
+    }	   
+
+    /*
      * Time to start parsing the tree itself
      */
     htmlParseContent(ctxt);
@@ -3468,8 +3526,14 @@
 	    avail = in->buf->buffer->use - (in->cur - in->base);
 	if ((avail == 0) && (terminate)) {
 	    htmlAutoClose(ctxt, NULL);
-	    if (ctxt->nameNr == 0)
+	    if ((ctxt->nameNr == 0) && (ctxt->instate != XML_PARSER_EOF)) { 
+		/*
+		 * SAX: end of the document processing.
+		 */
 		ctxt->instate = XML_PARSER_EOF;
+		if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
+		    ctxt->sax->endDocument(ctxt->userData);
+	    }
 	}
         if (avail < 1)
 	    goto done;
@@ -3600,14 +3664,19 @@
 		}
 		break;
             case XML_PARSER_EPILOG:
-		SKIP_BLANKS;
 		if (in->buf == NULL)
 		    avail = in->length - (in->cur - in->base);
 		else
 		    avail = in->buf->buffer->use - (in->cur - in->base);
-		if (avail < 2)
+		if (avail < 1)
 		    goto done;
 		cur = in->cur[0];
+		if (IS_BLANK(cur)) {
+		    htmlParseCharData(ctxt, 0);
+		    goto done;
+		}
+		if (avail < 2)
+		    goto done;
 		next = in->cur[1];
 	        if ((cur == '<') && (next == '!') &&
 		    (in->cur[2] == '-') && (in->cur[3] == '-')) {
@@ -3769,7 +3838,8 @@
 #endif
                 break;
 	    }
-            case XML_PARSER_CONTENT:
+            case XML_PARSER_CONTENT: {
+		long cons;
                 /*
 		 * Handle preparsed entities and charRef
 		 */
@@ -3806,6 +3876,7 @@
 		    goto done;
 		cur = in->cur[0];
 		next = in->cur[1];
+		cons = ctxt->nbChars;
 	        if ((cur == '<') && (next == '!') &&
 		    (in->cur[2] == '-') && (in->cur[3] == '-')) {
 		    if ((!terminate) &&
@@ -3860,7 +3931,19 @@
 #endif
 		    htmlParseCharData(ctxt, 0);
 		}
+		if (cons == ctxt->nbChars) {
+		    if (ctxt->node != NULL) {
+			if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
+			    ctxt->sax->error(ctxt->userData,
+				 "detected an error in element content\n");
+			ctxt->wellFormed = 0;
+			NEXT;
+		    }
+		    break;
+		}
+
 		break;
+	    }
             case XML_PARSER_END_TAG:
 		if (avail < 2)
 		    goto done;
@@ -3947,8 +4030,14 @@
 done:    
     if ((avail == 0) && (terminate)) {
 	htmlAutoClose(ctxt, NULL);
-	if (ctxt->nameNr == 0)
+	if ((ctxt->nameNr == 0) && (ctxt->instate != XML_PARSER_EOF)) { 
+	    /*
+	     * SAX: end of the document processing.
+	     */
 	    ctxt->instate = XML_PARSER_EOF;
+	    if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
+		ctxt->sax->endDocument(ctxt->userData);
+	}
     }
 #ifdef DEBUG_PUSH
     fprintf(stderr, "HPP: done %d\n", ret);
@@ -4231,10 +4320,12 @@
                  void *userData) {
     htmlDocPtr ret;
     htmlParserCtxtPtr ctxt;
+    htmlSAXHandlerPtr oldsax = NULL;
 
     ctxt = htmlCreateFileParserCtxt(filename, encoding);
     if (ctxt == NULL) return(NULL);
     if (sax != NULL) {
+	oldsax = ctxt->sax;
         ctxt->sax = sax;
         ctxt->userData = userData;
     }
@@ -4243,7 +4334,7 @@
 
     ret = ctxt->myDoc;
     if (sax != NULL) {
-        ctxt->sax = NULL;
+        ctxt->sax = oldsax;
         ctxt->userData = NULL;
     }
     htmlFreeParserCtxt(ctxt);
diff --git a/Makefile.am b/Makefile.am
index 3f4b003..367d004 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -99,6 +99,7 @@
 tests: XMLtests HTMLtests Validtests
 
 HTMLtests : testHTML
+	@(rm -f .memdump ; touch .memdump)
 	@echo "##"
 	@echo "## HTML regression tests"
 	@echo "##"
@@ -107,16 +108,71 @@
 	  if [ ! -d $$i ] ; then \
 	  if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
 	      echo New test file $$name ; \
-	      $(top_builddir)/testHTML $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
+	      testHTML $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
 	  else \
 	      echo Testing $$name ; \
-	      $(top_builddir)/testHTML $$i > result.$$name 2> error.$$name ; \
+	      testHTML $$i > result.$$name 2> error.$$name ; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/HTML/$$name result.$$name ; \
-	      diff $(srcdir)/result/HTML/$$name.err error.$$name ; \
-	      $(top_builddir)/testHTML result.$$name > result2.$$name 2>error.$$name ; \
+	      diff -b $(srcdir)/result/HTML/$$name.err error.$$name ; \
+	      testHTML result.$$name > result2.$$name 2>error.$$name ; \
 	      diff result.$$name result2.$$name ; \
 	      rm result.$$name result2.$$name error.$$name ; \
 	  fi ; fi ; done)
+	@echo "##"
+	@echo "## Push HTML regression tests"
+	@echo "##"
+	@(for i in $(srcdir)/test/HTML/* ; do \
+	  name=`basename $$i`; \
+	  if [ ! -d $$i ] ; then \
+	  if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
+	      echo New test file $$name ; \
+	      testHTML $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
+	  else \
+	      echo Testing $$name ; \
+	      testHTML --push $$i > result.$$name 2> error.$$name ; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	      diff $(srcdir)/result/HTML/$$name result.$$name ; \
+	      cut -b 1-15 $(srcdir)/result/HTML/$$name.err > errorcut.$$name; \
+	      cut -b 1-15 error.$$name > errorcut2.$$name; \
+	      diff -b errorcut.$$name errorcut2.$$name ; \
+	      testHTML --push result.$$name > result2.$$name 2>error.$$name ; \
+	      diff result.$$name result2.$$name ; \
+	      rm result.$$name result2.$$name error.$$name errorcut.$$name errorcut2.$$name ; \
+	  fi ; fi ; done)
+	@echo "##"
+	@echo "## HTML SAX regression tests"
+	@echo "##"
+	@(for i in $(srcdir)/test/HTML/* ; do \
+	  name=`basename $$i`; \
+	  if [ ! -d $$i ] ; then \
+	  if [ ! -f $(srcdir)/result/HTML/$$name.sax ] ; then \
+	      echo New test file $$name ; \
+	      testHTML --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
+	  else \
+	      echo Testing $$name ; \
+	      testHTML --sax $$i > result.$$name.sax ; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	      diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax ; \
+	      rm result.$$name.sax ; \
+	  fi ; fi ; done)
+	@echo "##"
+	@echo "## Push HTML SAX regression tests"
+	@echo "##"
+	@(for i in $(srcdir)/test/HTML/* ; do \
+	  name=`basename $$i`; \
+	  if [ ! -d $$i ] ; then \
+	  if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
+	      echo New test file $$name ; \
+	      testHTML --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
+	  else \
+	      echo Testing $$name ; \
+	      testHTML --push --sax $$i > result.$$name.sax ; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	      diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax ; \
+	      rm result.$$name.sax ; \
+	  fi ; fi ; done)
+
 
 XMLtests : xmllint
 	@echo "##"
diff --git a/SAX.c b/SAX.c
index 80922fd..ecc5331 100644
--- a/SAX.c
+++ b/SAX.c
@@ -338,6 +338,19 @@
 #endif
 
     ret = xmlGetDocEntity(ctxt->myDoc, name);
+    if ((ret != NULL) && (ctxt->validate) && (ret->children == NULL) &&
+	(ret->etype == XML_EXTERNAL_GENERAL_PARSED_ENTITY)) {
+	/*
+	 * for validation purposes we really need to fetch and
+	 * parse the external entity
+	 */
+	int parse;
+	xmlNodePtr children;
+
+        parse = xmlParseCtxtExternalEntity(ctxt,
+		  ret->SystemID, ret->ExternalID, &children);
+	xmlAddChildList((xmlNodePtr) ret, children);
+    }
     return(ret);
 }
 
@@ -591,7 +604,11 @@
 #endif
     if (ctxt->html) {
 	if (ctxt->myDoc == NULL)
+#ifdef LIBXML_HTML_ENABLED
 	    ctxt->myDoc = htmlNewDoc(NULL, NULL);
+#else
+        fprintf(stderr, "libxml2 built without HTML support\n");
+#endif
     } else {
 	doc = ctxt->myDoc = xmlNewDoc(ctxt->version);
 	if (doc != NULL) {
@@ -602,6 +619,10 @@
 	    doc->standalone = ctxt->standalone;
 	}
     }
+    if ((ctxt->myDoc != NULL) && (ctxt->myDoc->URL == NULL) &&
+	(ctxt->input != NULL) && (ctxt->input->filename != NULL)) {
+        ctxt->myDoc->URL = xmlStrdup((xmlChar *) ctxt->input->filename);
+    }
 }
 
 /**
diff --git a/configure.in b/configure.in
index e9c816d..d4fbd7f 100644
--- a/configure.in
+++ b/configure.in
@@ -5,7 +5,7 @@
 
 LIBXML_MAJOR_VERSION=2
 LIBXML_MINOR_VERSION=2
-LIBXML_MICRO_VERSION=1
+LIBXML_MICRO_VERSION=2
 LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION
 LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION
 
diff --git a/encoding.c b/encoding.c
index b12bd0b..3031ce8 100644
--- a/encoding.c
+++ b/encoding.c
@@ -420,8 +420,13 @@
 	} 
 
 	for ( ; trailing; trailing--) {
-	    if ((in >= inend) || (((d= *in++) & 0xC0) != 0x80))
+	    if (in >= inend)
 		break;
+	    if (((d= *in++) & 0xC0) != 0x80) {
+		*outlen = out - outstart;
+		*inlen = processed - instart;
+		return(-2);
+	    }
 	    c <<= 6;
 	    c |= d & 0x3F;
 	}
@@ -1033,6 +1038,8 @@
             return("Shift-JIS");
         case XML_CHAR_ENCODING_EUC_JP:
             return("EUC-JP");
+	case XML_CHAR_ENCODING_ASCII:
+	    return(NULL);
     }
     return(NULL);
 }
@@ -1104,6 +1111,11 @@
     handler->output = output;
     handler->name = up;
 
+#ifdef LIBXML_ICONV_ENABLED
+    handler->iconv_in = NULL;
+    handler->iconv_out = NULL;
+#endif /* LIBXML_ICONV_ENABLED */
+
     /*
      * registers and returns the handler.
      */
@@ -1584,8 +1596,10 @@
     if (out == NULL) return(-1);
     if (in == NULL) return(-1);
 
-    written = out->size - out->use;
     toconv = in->use;
+    if (toconv == 0)
+	return(0);
+    written = out->size - out->use;
     if (toconv * 2 >= written) {
         xmlBufferGrow(out, toconv * 2);
 	written = out->size - out->use - 1;
@@ -1697,6 +1711,8 @@
      * Convertion itself.
      */
     toconv = in->use;
+    if (toconv == 0)
+	return(0);
     if (toconv * 2 >= written) {
         xmlBufferGrow(out, toconv * 2);
 	written = out->size - out->use - 1;
@@ -1772,6 +1788,7 @@
 		fprintf(stderr, "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
 			in->content[0], in->content[1],
 			in->content[2], in->content[3]);
+		in->content[0] = ' ';
 	    }
 	    break;
 	}
diff --git a/include/libxml/parser.h b/include/libxml/parser.h
index c39f710..6d257c5 100644
--- a/include/libxml/parser.h
+++ b/include/libxml/parser.h
@@ -402,6 +402,10 @@
 					 const xmlChar *URL,
 					 const xmlChar *ID,
 					 xmlNodePtr *list);
+int		xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx,
+					 const xmlChar *URL,
+					 const xmlChar *ID,
+					 xmlNodePtr *list);
 
 /**
  * SAX initialization routines
@@ -421,6 +425,19 @@
 xmlParserCtxtPtr xmlCreateDocParserCtxt	(xmlChar *cur);
 
 /**
+ * Reading/setting optional parsing features.
+ */
+
+int		xmlGetFeaturesList	(int *len,
+					 const char **result);
+int		xmlGetFeature		(xmlParserCtxtPtr ctxt,
+					 const char *name,
+					 void *result);
+int		xmlSetFeature		(xmlParserCtxtPtr ctxt,
+					 const char *name,
+					 void *value);
+
+/**
  * Interfaces for the Push mode
  */
 xmlParserCtxtPtr xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax,
diff --git a/include/libxml/tree.h b/include/libxml/tree.h
index 00f4ee6..a3ae15f 100644
--- a/include/libxml/tree.h
+++ b/include/libxml/tree.h
@@ -508,6 +508,8 @@
 					 const xmlChar *name);
 xmlNodePtr	xmlAddChild		(xmlNodePtr parent,
 					 xmlNodePtr cur);
+xmlNodePtr	xmlAddChildList		(xmlNodePtr parent,
+					 xmlNodePtr cur);
 xmlNodePtr	xmlReplaceNode		(xmlNodePtr old,
 					 xmlNodePtr cur);
 xmlNodePtr	xmlAddSibling		(xmlNodePtr cur,
diff --git a/parser.c b/parser.c
index 43a8a40..14aee65 100644
--- a/parser.c
+++ b/parser.c
@@ -62,10 +62,11 @@
 void xmlParserHandlePEReference(xmlParserCtxtPtr ctxt);
 xmlEntityPtr xmlParseStringPEReference(xmlParserCtxtPtr ctxt,
                                        const xmlChar **str);
-
-/*
- * Version handling
- */
+/************************************************************************
+ *									*
+ * 		Version and Features handling				*
+ *									*
+ ************************************************************************/
 const char *xmlParserVersion = LIBXML_VERSION_STRING;
 
 /*
@@ -93,6 +94,293 @@
 }
 
 
+const char *xmlFeaturesList[] = {
+    "validate",
+    "keep blanks",
+    "disable SAX",
+    "fetch external entities",
+    "substitute entities",
+    "gather line info",
+    "user data",
+    "is html",
+    "is standalone",
+    "stop parser",
+    "document",
+    "is well formed",
+    "is valid",
+    "SAX block",
+    "SAX function internalSubset",
+    "SAX function isStandalone",
+    "SAX function hasInternalSubset",
+    "SAX function hasExternalSubset",
+    "SAX function resolveEntity",
+    "SAX function getEntity",
+    "SAX function entityDecl",
+    "SAX function notationDecl",
+    "SAX function attributeDecl",
+    "SAX function elementDecl",
+    "SAX function unparsedEntityDecl",
+    "SAX function setDocumentLocator",
+    "SAX function startDocument",
+    "SAX function endDocument",
+    "SAX function startElement",
+    "SAX function endElement",
+    "SAX function reference",
+    "SAX function characters",
+    "SAX function ignorableWhitespace",
+    "SAX function processingInstruction",
+    "SAX function comment",
+    "SAX function warning",
+    "SAX function error",
+    "SAX function fatalError",
+    "SAX function getParameterEntity",
+    "SAX function cdataBlock",
+    "SAX function externalSubset",
+};
+
+/*
+ * xmlGetFeaturesList:
+ * @len:  the length of the features name array (input/output)
+ * @result:  an array of string to be filled with the features name.
+ *
+ * Copy at most *@len feature names into the @result array
+ *
+ * Returns -1 in case or error, or the total number of features,
+ *            len is updated with the number of strings copied,
+ *            strings must not be deallocated
+ */
+int
+xmlGetFeaturesList(int *len, const char **result) {
+    int ret, i;
+
+    ret = sizeof(xmlFeaturesList)/sizeof(xmlFeaturesList[0]);
+    if ((len == NULL) || (result == NULL))
+	return(ret);
+    if ((*len < 0) || (*len >= 1000))
+	return(-1);
+    if (*len > ret)
+	*len = ret;
+    for (i = 0;i < *len;i++)
+	result[i] = xmlFeaturesList[i];
+    return(ret);
+}
+
+/*
+ * xmlGetFeature:
+ * @ctxt:  an XML/HTML parser context
+ * @name:  the feature name
+ * @result:  location to store the result
+ *
+ * Read the current value of one feature of this parser instance
+ *
+ * Returns -1 in case or error, 0 otherwise
+ */
+int
+xmlGetFeature(xmlParserCtxtPtr ctxt, const char *name, void *result) {
+    if ((ctxt == NULL) || (name == NULL) || (result == NULL))
+	return(-1);
+
+    if (!strcmp(name, "validate")) {
+	*((int *) result) = ctxt->validate;
+    } else if (!strcmp(name, "keep blanks")) {
+	*((int *) result) = ctxt->keepBlanks;
+    } else if (!strcmp(name, "disable SAX")) {
+	*((int *) result) = ctxt->disableSAX;
+    } else if (!strcmp(name, "fetch external entities")) {
+	*((int *) result) = ctxt->validate;
+    } else if (!strcmp(name, "substitute entities")) {
+	*((int *) result) = ctxt->replaceEntities;
+    } else if (!strcmp(name, "gather line info")) {
+	*((int *) result) = ctxt->record_info;
+    } else if (!strcmp(name, "user data")) {
+	*((void **)result) = ctxt->userData;
+    } else if (!strcmp(name, "is html")) {
+	*((int *) result) = ctxt->html;
+    } else if (!strcmp(name, "is standalone")) {
+	*((int *) result) = ctxt->standalone;
+    } else if (!strcmp(name, "document")) {
+	*((xmlDocPtr *) result) = ctxt->myDoc;
+    } else if (!strcmp(name, "is well formed")) {
+	*((int *) result) = ctxt->wellFormed;
+    } else if (!strcmp(name, "is valid")) {
+	*((int *) result) = ctxt->valid;
+    } else if (!strcmp(name, "SAX block")) {
+	*((xmlSAXHandlerPtr *) result) = ctxt->sax;
+    } else if (!strcmp(name, "SAX function internalSubset")) {
+        *((internalSubsetSAXFunc *) result) = ctxt->sax->internalSubset;
+    } else if (!strcmp(name, "SAX function isStandalone")) {
+        *((isStandaloneSAXFunc *) result) = ctxt->sax->isStandalone;
+    } else if (!strcmp(name, "SAX function hasInternalSubset")) {
+        *((hasInternalSubsetSAXFunc *) result) = ctxt->sax->hasInternalSubset;
+    } else if (!strcmp(name, "SAX function hasExternalSubset")) {
+        *((hasExternalSubsetSAXFunc *) result) = ctxt->sax->hasExternalSubset;
+    } else if (!strcmp(name, "SAX function resolveEntity")) {
+        *((resolveEntitySAXFunc *) result) = ctxt->sax->resolveEntity;
+    } else if (!strcmp(name, "SAX function getEntity")) {
+        *((getEntitySAXFunc *) result) = ctxt->sax->getEntity;
+    } else if (!strcmp(name, "SAX function entityDecl")) {
+        *((entityDeclSAXFunc *) result) = ctxt->sax->entityDecl;
+    } else if (!strcmp(name, "SAX function notationDecl")) {
+        *((notationDeclSAXFunc *) result) = ctxt->sax->notationDecl;
+    } else if (!strcmp(name, "SAX function attributeDecl")) {
+        *((attributeDeclSAXFunc *) result) = ctxt->sax->attributeDecl;
+    } else if (!strcmp(name, "SAX function elementDecl")) {
+        *((elementDeclSAXFunc *) result) = ctxt->sax->elementDecl;
+    } else if (!strcmp(name, "SAX function unparsedEntityDecl")) {
+        *((unparsedEntityDeclSAXFunc *) result) = ctxt->sax->unparsedEntityDecl;
+    } else if (!strcmp(name, "SAX function setDocumentLocator")) {
+        *((setDocumentLocatorSAXFunc *) result) = ctxt->sax->setDocumentLocator;
+    } else if (!strcmp(name, "SAX function startDocument")) {
+        *((startDocumentSAXFunc *) result) = ctxt->sax->startDocument;
+    } else if (!strcmp(name, "SAX function endDocument")) {
+        *((endDocumentSAXFunc *) result) = ctxt->sax->endDocument;
+    } else if (!strcmp(name, "SAX function startElement")) {
+        *((startElementSAXFunc *) result) = ctxt->sax->startElement;
+    } else if (!strcmp(name, "SAX function endElement")) {
+        *((endElementSAXFunc *) result) = ctxt->sax->endElement;
+    } else if (!strcmp(name, "SAX function reference")) {
+        *((referenceSAXFunc *) result) = ctxt->sax->reference;
+    } else if (!strcmp(name, "SAX function characters")) {
+        *((charactersSAXFunc *) result) = ctxt->sax->characters;
+    } else if (!strcmp(name, "SAX function ignorableWhitespace")) {
+        *((ignorableWhitespaceSAXFunc *) result) = ctxt->sax->ignorableWhitespace;
+    } else if (!strcmp(name, "SAX function processingInstruction")) {
+        *((processingInstructionSAXFunc *) result) = ctxt->sax->processingInstruction;
+    } else if (!strcmp(name, "SAX function comment")) {
+        *((commentSAXFunc *) result) = ctxt->sax->comment;
+    } else if (!strcmp(name, "SAX function warning")) {
+        *((warningSAXFunc *) result) = ctxt->sax->warning;
+    } else if (!strcmp(name, "SAX function error")) {
+        *((errorSAXFunc *) result) = ctxt->sax->error;
+    } else if (!strcmp(name, "SAX function fatalError")) {
+        *((fatalErrorSAXFunc *) result) = ctxt->sax->fatalError;
+    } else if (!strcmp(name, "SAX function getParameterEntity")) {
+        *((getParameterEntitySAXFunc *) result) = ctxt->sax->getParameterEntity;
+    } else if (!strcmp(name, "SAX function cdataBlock")) {
+        *((cdataBlockSAXFunc *) result) = ctxt->sax->cdataBlock;
+    } else if (!strcmp(name, "SAX function externalSubset")) {
+        *((externalSubsetSAXFunc *) result) = ctxt->sax->externalSubset;
+    } else {
+	return(-1);
+    }
+    return(0);
+}
+
+/*
+ * xmlSetFeature:
+ * @ctxt:  an XML/HTML parser context
+ * @name:  the feature name
+ * @value:  pointer to the location of the new value
+ *
+ * Change the current value of one feature of this parser instance
+ *
+ * Returns -1 in case or error, 0 otherwise
+ */
+int	
+xmlSetFeature(xmlParserCtxtPtr ctxt, const char *name, void *value) {
+    if ((ctxt == NULL) || (name == NULL) || (value == NULL))
+	return(-1);
+
+    if (!strcmp(name, "validate")) {
+        ctxt->validate = *((int *) value);
+    } else if (!strcmp(name, "keep blanks")) {
+        ctxt->keepBlanks = *((int *) value);
+    } else if (!strcmp(name, "disable SAX")) {
+        ctxt->disableSAX = *((int *) value);
+    } else if (!strcmp(name, "fetch external entities")) {
+	int newvalid = *((int *) value);
+	if ((!ctxt->validate) && (newvalid != 0)) {
+	    if (ctxt->vctxt.warning == NULL)
+		ctxt->vctxt.warning = xmlParserValidityWarning;
+	    if (ctxt->vctxt.error == NULL)
+		ctxt->vctxt.error = xmlParserValidityError;
+	    /* Allocate the Node stack */
+	    ctxt->vctxt.nodeTab = (xmlNodePtr *)
+		       xmlMalloc(4 * sizeof(xmlNodePtr));
+	    ctxt->vctxt.nodeNr = 0;
+	    ctxt->vctxt.nodeMax = 4;
+	    ctxt->vctxt.node = NULL;
+	}
+	ctxt->validate = newvalid;
+    } else if (!strcmp(name, "substitute entities")) {
+        ctxt->replaceEntities = *((int *) value);
+    } else if (!strcmp(name, "gather line info")) {
+        ctxt->record_info = *((int *) value);
+    } else if (!strcmp(name, "user data")) {
+        ctxt->userData = *((void **)value);
+    } else if (!strcmp(name, "is html")) {
+        ctxt->html = *((int *) value);
+    } else if (!strcmp(name, "is standalone")) {
+        ctxt->standalone = *((int *) value);
+    } else if (!strcmp(name, "document")) {
+        ctxt->myDoc = *((xmlDocPtr *) value);
+    } else if (!strcmp(name, "is well formed")) {
+        ctxt->wellFormed = *((int *) value);
+    } else if (!strcmp(name, "is valid")) {
+        ctxt->valid = *((int *) value);
+    } else if (!strcmp(name, "SAX block")) {
+        ctxt->sax = *((xmlSAXHandlerPtr *) value);
+    } else if (!strcmp(name, "SAX function internalSubset")) {
+        ctxt->sax->internalSubset = *((internalSubsetSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function isStandalone")) {
+        ctxt->sax->isStandalone = *((isStandaloneSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function hasInternalSubset")) {
+        ctxt->sax->hasInternalSubset = *((hasInternalSubsetSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function hasExternalSubset")) {
+        ctxt->sax->hasExternalSubset = *((hasExternalSubsetSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function resolveEntity")) {
+        ctxt->sax->resolveEntity = *((resolveEntitySAXFunc *) value);
+    } else if (!strcmp(name, "SAX function getEntity")) {
+        ctxt->sax->getEntity = *((getEntitySAXFunc *) value);
+    } else if (!strcmp(name, "SAX function entityDecl")) {
+        ctxt->sax->entityDecl = *((entityDeclSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function notationDecl")) {
+        ctxt->sax->notationDecl = *((notationDeclSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function attributeDecl")) {
+        ctxt->sax->attributeDecl = *((attributeDeclSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function elementDecl")) {
+        ctxt->sax->elementDecl = *((elementDeclSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function unparsedEntityDecl")) {
+        ctxt->sax->unparsedEntityDecl = *((unparsedEntityDeclSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function setDocumentLocator")) {
+        ctxt->sax->setDocumentLocator = *((setDocumentLocatorSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function startDocument")) {
+        ctxt->sax->startDocument = *((startDocumentSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function endDocument")) {
+        ctxt->sax->endDocument = *((endDocumentSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function startElement")) {
+        ctxt->sax->startElement = *((startElementSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function endElement")) {
+        ctxt->sax->endElement = *((endElementSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function reference")) {
+        ctxt->sax->reference = *((referenceSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function characters")) {
+        ctxt->sax->characters = *((charactersSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function ignorableWhitespace")) {
+        ctxt->sax->ignorableWhitespace = *((ignorableWhitespaceSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function processingInstruction")) {
+        ctxt->sax->processingInstruction = *((processingInstructionSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function comment")) {
+        ctxt->sax->comment = *((commentSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function warning")) {
+        ctxt->sax->warning = *((warningSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function error")) {
+        ctxt->sax->error = *((errorSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function fatalError")) {
+        ctxt->sax->fatalError = *((fatalErrorSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function getParameterEntity")) {
+        ctxt->sax->getParameterEntity = *((getParameterEntitySAXFunc *) value);
+    } else if (!strcmp(name, "SAX function cdataBlock")) {
+        ctxt->sax->cdataBlock = *((cdataBlockSAXFunc *) value);
+    } else if (!strcmp(name, "SAX function externalSubset")) {
+        ctxt->sax->externalSubset = *((externalSubsetSAXFunc *) value);
+    } else {
+	return(-1);
+    }
+    return(0);
+}
+
+
 /************************************************************************
  *									*
  * 		Input handling functions for progressive parsing	*
@@ -1958,6 +2246,10 @@
 		     * ... The declaration of a parameter entity must precede
 		     * any reference to it...
 		     */
+		    if ((ctxt->validate) && (ctxt->vctxt.error != NULL)) {
+			ctxt->vctxt.error(ctxt->vctxt.userData,
+			     "PEReference: %%%s; not found\n", name);
+		    } else
 		    if ((ctxt->sax != NULL) && (ctxt->sax->warning != NULL))
 			ctxt->sax->warning(ctxt->userData,
 			 "PEReference: %%%s; not found\n", name);
@@ -2155,6 +2447,9 @@
     int c,l;
     int nbchars = 0;
 
+    if (str == NULL)
+	return(NULL);
+
     if (ctxt->depth > 40) {
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
@@ -2381,6 +2676,7 @@
 		ctxt->charset = XML_CHAR_ENCODING_UTF8;
 		return(0);
 	    case XML_CHAR_ENCODING_UTF8:
+	    case XML_CHAR_ENCODING_ASCII:
 		/* default encoding, no conversion should be needed */
 		ctxt->charset = XML_CHAR_ENCODING_UTF8;
 		return(0);
@@ -2552,6 +2848,7 @@
 		    }
 		    ctxt->input->base =
 		    ctxt->input->cur = ctxt->input->buf->buffer->content;
+
 		}
 		return(0);
 	    } else {
@@ -3886,7 +4183,8 @@
 		 * This may look absurd but is needed to detect
 		 * entities problems
 		 */
-		if (ent->etype != XML_INTERNAL_PREDEFINED_ENTITY) {
+		if ((ent->etype != XML_INTERNAL_PREDEFINED_ENTITY) &&
+		    (ent->content != NULL)) {
 		    xmlChar *rep;
 		    rep = xmlStringDecodeEntities(ctxt, ent->content,
 					      XML_SUBSTITUTE_REF, 0, 0, 0);
@@ -5657,7 +5955,8 @@
 		ctxt->disableSAX = 1;
 		if ((op != NULL) && (op != ret))
 		    xmlFreeElementContent(op);
-		if ((last != NULL) && (last != ret))
+		if ((last != NULL) && (last != ret) &&
+		    (last != ret->c1) && (last != ret->c2))
 		    xmlFreeElementContent(last);
 		if (ret != NULL)
 		    xmlFreeElementContent(ret);
@@ -5693,9 +5992,10 @@
 		ctxt->errNo = XML_ERR_SEPARATOR_REQUIRED;
 		ctxt->wellFormed = 0;
 		ctxt->disableSAX = 1;
-		if ((op != NULL) && (op != ret))
+		if ((op != NULL) && (op != ret) && (op != last))
 		    xmlFreeElementContent(op);
-		if ((last != NULL) && (last != ret))
+		if ((last != NULL) && (last != ret) &&
+		    (last != ret->c1) && (last != ret->c2))
 		    xmlFreeElementContent(last);
 		if (ret != NULL)
 		    xmlFreeElementContent(ret);
@@ -5707,7 +6007,8 @@
 	    if (op == NULL) {
 		if ((op != NULL) && (op != ret))
 		    xmlFreeElementContent(op);
-		if ((last != NULL) && (last != ret))
+		if ((last != NULL) && (last != ret) &&
+		    (last != ret->c1) && (last != ret->c2))
 		    xmlFreeElementContent(last);
 		if (ret != NULL)
 		    xmlFreeElementContent(ret);
@@ -5731,7 +6032,8 @@
 	    ctxt->errNo = XML_ERR_ELEMCONTENT_NOT_FINISHED;
 	    if ((op != NULL) && (op != ret))
 		xmlFreeElementContent(op);
-	    if ((last != NULL) && (last != ret))
+	    if ((last != NULL) && (last != ret) &&
+		(last != ret->c1) && (last != ret->c2))
 		xmlFreeElementContent(last);
 	    if (ret != NULL)
 		xmlFreeElementContent(ret);
@@ -5757,7 +6059,8 @@
 		ctxt->disableSAX = 1;
 		if ((op != NULL) && (op != ret))
 		    xmlFreeElementContent(op);
-		if ((last != NULL) && (last != ret))
+		if ((last != NULL) && (last != ret) &&
+		    (last != ret->c1) && (last != ret->c2))
 		    xmlFreeElementContent(last);
 		if (ret != NULL)
 		    xmlFreeElementContent(ret);
@@ -7999,6 +8302,13 @@
 #endif
 	    xmlFree(oldname);
 	}
+	if ( ret != NULL && ctxt->record_info ) {
+	   node_info.end_pos = ctxt->input->consumed +
+			      (CUR_PTR - ctxt->input->base);
+	   node_info.end_line = ctxt->input->line;
+	   node_info.node = ret;
+	   xmlParserAddNodeInfo(ctxt, &node_info);
+	}
 	return;
     }
     if (RAW == '>') {
@@ -9919,7 +10229,6 @@
     /*
      * Set-up the SAX context
      */
-    if (ctxt == NULL) return(NULL);
     if (sax != NULL) { 
 	if (ctxt->sax != NULL)
 	    xmlFree(ctxt->sax);
@@ -10067,6 +10376,165 @@
 }
 
 /**
+ * xmlParseCtxtExternalEntity:
+ * @ctx:  the existing parsing context
+ * @URL:  the URL for the entity to load
+ * @ID:  the System ID for the entity to load
+ * @list:  the return value for the set of parsed nodes
+ *
+ * Parse an external general entity within an existing parsing context
+ * An external general parsed entity is well-formed if it matches the
+ * production labeled extParsedEnt.
+ *
+ * [78] extParsedEnt ::= TextDecl? content
+ *
+ * Returns 0 if the entity is well formed, -1 in case of args problem and
+ *    the parser error code otherwise
+ */
+
+int
+xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx, const xmlChar *URL,
+	               const xmlChar *ID, xmlNodePtr *list) {
+    xmlParserCtxtPtr ctxt;
+    xmlDocPtr newDoc;
+    xmlSAXHandlerPtr oldsax = NULL;
+    int ret = 0;
+
+    if (ctx->depth > 40) {
+	return(XML_ERR_ENTITY_LOOP);
+    }
+
+    if (list != NULL)
+        *list = NULL;
+    if ((URL == NULL) && (ID == NULL))
+	return(-1);
+    if (ctx->myDoc == NULL) /* @@ relax but check for dereferences */
+	return(-1);
+
+
+    ctxt = xmlCreateEntityParserCtxt(URL, ID, ctx->myDoc->URL);
+    if (ctxt == NULL) return(-1);
+    ctxt->userData = ctxt;
+    oldsax = ctxt->sax;
+    ctxt->sax = ctx->sax;
+    newDoc = xmlNewDoc(BAD_CAST "1.0");
+    if (newDoc == NULL) {
+	xmlFreeParserCtxt(ctxt);
+	return(-1);
+    }
+    if (ctx->myDoc != NULL) {
+	newDoc->intSubset = ctx->myDoc->intSubset;
+	newDoc->extSubset = ctx->myDoc->extSubset;
+    }
+    if (ctx->myDoc->URL != NULL) {
+	newDoc->URL = xmlStrdup(ctx->myDoc->URL);
+    }
+    newDoc->children = xmlNewDocNode(newDoc, NULL, BAD_CAST "pseudoroot", NULL);
+    if (newDoc->children == NULL) {
+	ctxt->sax = oldsax;
+	xmlFreeParserCtxt(ctxt);
+	newDoc->intSubset = NULL;
+	newDoc->extSubset = NULL;
+        xmlFreeDoc(newDoc);
+	return(-1);
+    }
+    nodePush(ctxt, newDoc->children);
+    if (ctx->myDoc == NULL) {
+	ctxt->myDoc = newDoc;
+    } else {
+	ctxt->myDoc = ctx->myDoc;
+	newDoc->children->doc = ctx->myDoc;
+    }
+
+    /*
+     * Parse a possible text declaration first
+     */
+    GROW;
+    if ((RAW == '<') && (NXT(1) == '?') &&
+	(NXT(2) == 'x') && (NXT(3) == 'm') &&
+	(NXT(4) == 'l') && (IS_BLANK(NXT(5)))) {
+	xmlParseTextDecl(ctxt);
+    }
+
+    /*
+     * Doing validity checking on chunk doesn't make sense
+     */
+    ctxt->instate = XML_PARSER_CONTENT;
+    ctxt->validate = ctx->validate;
+    ctxt->depth = ctx->depth + 1;
+    ctxt->replaceEntities = ctx->replaceEntities;
+    if (ctxt->validate) {
+	ctxt->vctxt.error = ctx->vctxt.error;
+	ctxt->vctxt.warning = ctx->vctxt.warning;
+	/* Allocate the Node stack */
+	ctxt->vctxt.nodeTab = (xmlNodePtr *) xmlMalloc(4 * sizeof(xmlNodePtr));
+	ctxt->vctxt.nodeNr = 0;
+	ctxt->vctxt.nodeMax = 4;
+	ctxt->vctxt.node = NULL;
+    } else {
+	ctxt->vctxt.error = NULL;
+	ctxt->vctxt.warning = NULL;
+    }
+
+    xmlParseContent(ctxt);
+   
+    if ((RAW == '<') && (NXT(1) == '/')) {
+	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
+	    ctxt->sax->error(ctxt->userData,
+		"chunk is not well balanced\n");
+	ctxt->wellFormed = 0;
+	ctxt->disableSAX = 1;
+	ctxt->errNo = XML_ERR_NOT_WELL_BALANCED;
+    } else if (RAW != 0) {
+	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
+	    ctxt->sax->error(ctxt->userData,
+		"extra content at the end of well balanced chunk\n");
+	ctxt->wellFormed = 0;
+	ctxt->disableSAX = 1;
+	ctxt->errNo = XML_ERR_EXTRA_CONTENT;
+    }
+    if (ctxt->node != newDoc->children) {
+	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
+	    ctxt->sax->error(ctxt->userData,
+		"chunk is not well balanced\n");
+	ctxt->wellFormed = 0;
+	ctxt->disableSAX = 1;
+	ctxt->errNo = XML_ERR_NOT_WELL_BALANCED;
+    }
+
+    if (!ctxt->wellFormed) {
+        if (ctxt->errNo == 0)
+	    ret = 1;
+	else
+	    ret = ctxt->errNo;
+    } else {
+	if (list != NULL) {
+	    xmlNodePtr cur;
+
+	    /*
+	     * Return the newly created nodeset after unlinking it from
+	     * they pseudo parent.
+	     */
+	    cur = newDoc->children->children;
+	    *list = cur;
+	    while (cur != NULL) {
+		cur->parent = NULL;
+		cur = cur->next;
+	    }
+            newDoc->children->children = NULL;
+	}
+	ret = 0;
+    }
+    ctxt->sax = oldsax;
+    xmlFreeParserCtxt(ctxt);
+    newDoc->intSubset = NULL;
+    newDoc->extSubset = NULL;
+    xmlFreeDoc(newDoc);
+    
+    return(ret);
+}
+
+/**
  * xmlParseExternalEntity:
  * @doc:  the document the chunk pertains to
  * @sax:  the SAX handler bloc (possibly NULL)
@@ -10104,6 +10572,8 @@
         *list = NULL;
     if ((URL == NULL) && (ID == NULL))
 	return(-1);
+    if (doc == NULL) /* @@ relax but check for dereferences */
+	return(-1);
 
 
     ctxt = xmlCreateEntityParserCtxt(URL, ID, doc->URL);
@@ -10413,25 +10883,44 @@
     xmlParserCtxtPtr ctxt;
     xmlParserInputPtr inputStream;
     char *directory = NULL;
-
+    xmlChar *uri;
+    
     ctxt = xmlNewParserCtxt();
     if (ctxt == NULL) {
 	return(NULL);
     }
 
-    inputStream = xmlLoadExternalEntity((char *)URL, (char *)ID, ctxt);
-    if (inputStream == NULL) {
-	xmlFreeParserCtxt(ctxt);
-	return(NULL);
+    uri = xmlBuildURI(URL, base);
+
+    if (uri == NULL) {
+	inputStream = xmlLoadExternalEntity((char *)URL, (char *)ID, ctxt);
+	if (inputStream == NULL) {
+	    xmlFreeParserCtxt(ctxt);
+	    return(NULL);
+	}
+
+	inputPush(ctxt, inputStream);
+
+	if ((ctxt->directory == NULL) && (directory == NULL))
+	    directory = xmlParserGetDirectory((char *)URL);
+	if ((ctxt->directory == NULL) && (directory != NULL))
+	    ctxt->directory = directory;
+    } else {
+	inputStream = xmlLoadExternalEntity((char *)uri, (char *)ID, ctxt);
+	if (inputStream == NULL) {
+	    xmlFreeParserCtxt(ctxt);
+	    return(NULL);
+	}
+
+	inputPush(ctxt, inputStream);
+
+	if ((ctxt->directory == NULL) && (directory == NULL))
+	    directory = xmlParserGetDirectory((char *)uri);
+	if ((ctxt->directory == NULL) && (directory != NULL))
+	    ctxt->directory = directory;
+	xmlFree(uri);
     }
 
-    inputPush(ctxt, inputStream);
-
-    if ((ctxt->directory == NULL) && (directory == NULL))
-        directory = xmlParserGetDirectory((char *)URL);
-    if ((ctxt->directory == NULL) && (directory != NULL))
-        ctxt->directory = directory;
-
     return(ctxt);
 }
 
@@ -10763,10 +11252,14 @@
 			  char *buffer, int size) {
     int ret = 0;
     xmlParserCtxtPtr ctxt;
+    xmlSAXHandlerPtr oldsax = NULL;
     
     ctxt = xmlCreateMemoryParserCtxt(buffer, size);
     if (ctxt == NULL) return -1;
-    ctxt->sax = sax;
+    if (sax != NULL) {
+	oldsax = ctxt->sax;
+	ctxt->sax = sax;
+    }
     ctxt->userData = user_data;
     
     xmlParseDocument(ctxt);
@@ -10779,8 +11272,9 @@
 	else
 	    ret = -1;
     }
-    if (sax != NULL)
-	ctxt->sax = NULL;
+    if (sax != NULL) {
+	ctxt->sax = oldsax;
+    }
     xmlFreeParserCtxt(ctxt);
     
     return ret;
diff --git a/parser.h b/parser.h
index c39f710..6d257c5 100644
--- a/parser.h
+++ b/parser.h
@@ -402,6 +402,10 @@
 					 const xmlChar *URL,
 					 const xmlChar *ID,
 					 xmlNodePtr *list);
+int		xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx,
+					 const xmlChar *URL,
+					 const xmlChar *ID,
+					 xmlNodePtr *list);
 
 /**
  * SAX initialization routines
@@ -421,6 +425,19 @@
 xmlParserCtxtPtr xmlCreateDocParserCtxt	(xmlChar *cur);
 
 /**
+ * Reading/setting optional parsing features.
+ */
+
+int		xmlGetFeaturesList	(int *len,
+					 const char **result);
+int		xmlGetFeature		(xmlParserCtxtPtr ctxt,
+					 const char *name,
+					 void *result);
+int		xmlSetFeature		(xmlParserCtxtPtr ctxt,
+					 const char *name,
+					 void *value);
+
+/**
  * Interfaces for the Push mode
  */
 xmlParserCtxtPtr xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax,
diff --git a/result/HTML/Down.html.sax b/result/HTML/Down.html.sax
new file mode 100644
index 0000000..ce3052e
--- /dev/null
+++ b/result/HTML/Down.html.sax
@@ -0,0 +1,37 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElement(html)
+SAX.characters(
+, 1)
+SAX.startElement(head)
+SAX.characters(
+  , 3)
+SAX.startElement(title)
+SAX.characters(This service is temporary down, 30)
+SAX.endElement(title)
+SAX.characters(
+, 1)
+SAX.endElement(head)
+SAX.characters(
+
+, 2)
+SAX.startElement(body, bgcolor='#FFFFFF')
+SAX.characters(
+, 1)
+SAX.startElement(h1, align='center')
+SAX.characters(Sorry, this service is tempora, 37)
+SAX.endElement(h1)
+SAX.characters(
+We are doing our best to get , 48)
+SAX.startElement(p)
+SAX.characters(The W3C system administrators, 29)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.endElement(body)
+SAX.characters(
+, 1)
+SAX.endElement(html)
+SAX.ignorableWhitespace(
+, 1)
+SAX.endDocument()
diff --git a/result/HTML/autoclose.html.sax b/result/HTML/autoclose.html.sax
new file mode 100644
index 0000000..5a45627
--- /dev/null
+++ b/result/HTML/autoclose.html.sax
@@ -0,0 +1,11 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElement(html)
+SAX.startElement(body)
+SAX.startElement(hr)
+SAX.endElement(hr)
+SAX.ignorableWhitespace(
+, 1)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.endDocument()
diff --git a/result/HTML/autoclose2.html.sax b/result/HTML/autoclose2.html.sax
new file mode 100644
index 0000000..d1e6abb
--- /dev/null
+++ b/result/HTML/autoclose2.html.sax
@@ -0,0 +1,11 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElement(html)
+SAX.startElement(body)
+SAX.startElement(p)
+SAX.characters(toto
+, 5)
+SAX.endElement(p)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.endDocument()
diff --git a/result/HTML/autoclose3.html.sax b/result/HTML/autoclose3.html.sax
new file mode 100644
index 0000000..e8ed330
--- /dev/null
+++ b/result/HTML/autoclose3.html.sax
@@ -0,0 +1,20 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElement(html)
+SAX.startElement(body)
+SAX.startElement(ul)
+SAX.characters(
+, 1)
+SAX.startElement(li)
+SAX.characters(item 1
+, 7)
+SAX.endElement(li)
+SAX.startElement(li)
+SAX.characters(item 2
+, 7)
+SAX.endElement(li)
+SAX.error: Opening and ending tag mismatch: body and ul
+SAX.endElement(ul)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.endDocument()
diff --git a/result/HTML/doc2.htm b/result/HTML/doc2.htm
new file mode 100644
index 0000000..31db496
--- /dev/null
+++ b/result/HTML/doc2.htm
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!-- saved from url=(0016)http://intranet/ --><!-- BEGIN Naviscope Javascript --><html>
+<head>
+<title>Welcome to Copernic.com</title>
+<script language="javascript">
+          NS_ActualOpen=window.open;
+          function NS_NullWindow(){this.window;}
+          function NS_NewOpen(url,nam,atr){return(new NS_NullWindow());}
+          window.open=NS_NewOpen;
+</script>
+<!-- END Naviscope Javascript -->!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;<!-- saved from url=(0027)http://www.agents-tech.com/ --><meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
+<meta content="Copernic.com Inc. develops innovative agent technology solutions to efficiently access and manage the overwhelming quantity of information available on the Internet and intranets." name="DESCRIPTION">
+<meta content="agent,technology,intranet,extranet,management,filtering,ranking,solution,service,intelligent,intelligence,client,server,architecture,developer,development,information,telecommunication,announcement,press,product,profile,contact,multi-agent,meta-search,metasearch,multi-thread,mobile,wireless,shopping,robot,PCS,Copernic,engine,toolkit,CDK,EDK" name="KEYWORDS">
+<meta content="MSHTML 5.00.3103.1000" name="GENERATOR">
+</head>
+<body><frameset border="false" cols="172,*" frameBorder="0" frameSpacing="0">
+<frame marginHeight="0" marginWidth="0" name="left" noResize scrolling="no" src="doc2_files/side.htm" target="rtop">
+<frameset rows="43,*">
+<frame marginHeight="0" marginWidth="0" name="rtop" noResize scrolling="no" src="doc2_files/top.htm" target="rbottom">
+<frame name="rbottom" noResize src="doc2_files/contents.htm" target="_top">
+</frameset>
+<noframes><body bgcolor="#FFFFFF" text="#000000" link="#000080" vlink="#000080" alink="#000080" topmargin="0" leftmargin="0" marginheight="0" marginwidth="0"><p>This page uses frames, but your browser doesn't support them.</p></body></noframes>
+</frameset></body>
+</html>
diff --git a/result/HTML/doc2.htm.err b/result/HTML/doc2.htm.err
new file mode 100644
index 0000000..9e37bf4
--- /dev/null
+++ b/result/HTML/doc2.htm.err
@@ -0,0 +1,3 @@
+./test/HTML/doc2.htm:10: error: htmlParseStartTag: invalid element name
+<!-- END Naviscope Javascript --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Tr
+                                  ^
diff --git a/result/HTML/doc2.htm.sax b/result/HTML/doc2.htm.sax
new file mode 100644
index 0000000..3d02052
--- /dev/null
+++ b/result/HTML/doc2.htm.sax
@@ -0,0 +1,71 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, (null))
+SAX.comment( saved from url=(0016)http://intranet/ )
+SAX.comment( BEGIN Naviscope Javascript )
+SAX.startElement(html)
+SAX.startElement(head)
+SAX.startElement(title)
+SAX.characters(Welcome to Copernic.com, 23)
+SAX.endElement(title)
+SAX.characters(
+, 1)
+SAX.startElement(script, language='javascript')
+SAX.characters(
+          NS_ActualOpen=windo, 194)
+SAX.endElement(script)
+SAX.characters(
+, 1)
+SAX.comment( END Naviscope Javascript )
+SAX.error: htmlParseStartTag: invalid element name
+SAX.characters(!DOCTYPE HTML PUBLIC "-//W3C//, 61)
+SAX.comment( saved from url=(0027)http://www.agents-tech.com/ )
+SAX.characters(
+, 1)
+SAX.startElement(meta, content='text/html; charset=iso-8859-1', http-equiv='Content-Type')
+SAX.endElement(meta)
+SAX.characters(
+, 1)
+SAX.startElement(meta, content='Copernic.com Inc. develops innovative agent technology solutions to efficiently access and manage the overwhelming quantity of information available on the Internet and intranets.', name='DESCRIPTION')
+SAX.endElement(meta)
+SAX.characters(
+, 1)
+SAX.startElement(meta, content='agent,technology,intranet,extranet,management,filtering,ranking,solution,service,intelligent,intelligence,client,server,architecture,developer,development,information,telecommunication,announcement,press,product,profile,contact,multi-agent,meta-search,metasearch,multi-thread,mobile,wireless,shopping,robot,PCS,Copernic,engine,toolkit,CDK,EDK', name='KEYWORDS')
+SAX.endElement(meta)
+SAX.characters(
+, 1)
+SAX.startElement(meta, content='MSHTML 5.00.3103.1000', name='GENERATOR')
+SAX.endElement(meta)
+SAX.endElement(head)
+SAX.startElement(body)
+SAX.startElement(frameset, border='false', cols='172,*', frameBorder='0', frameSpacing='0')
+SAX.startElement(frame, marginHeight='0', marginWidth='0', name='left', noResize='(null)', scrolling='no', src='doc2_files/side.htm', target='rtop')
+SAX.endElement(frame)
+SAX.startElement(frameset, rows='43,*')
+SAX.startElement(frame, marginHeight='0', marginWidth='0', name='rtop', noResize='(null)', scrolling='no', src='doc2_files/top.htm', target='rbottom')
+SAX.endElement(frame)
+SAX.startElement(frame, name='rbottom', noResize='(null)', src='doc2_files/contents.htm', target='_top')
+SAX.endElement(frame)
+SAX.endElement(frameset)
+SAX.startElement(noframes)
+SAX.characters(
+
+  , 4)
+SAX.startElement(body, bgcolor='#FFFFFF', text='#000000', link='#000080', vlink='#000080', alink='#000080', topmargin='0', leftmargin='0', marginheight='0', marginwidth='0')
+SAX.characters(
+  , 3)
+SAX.startElement(p)
+SAX.characters(This page uses frames, but you, 61)
+SAX.endElement(p)
+SAX.characters(
+  , 3)
+SAX.endElement(body)
+SAX.characters(
+  , 3)
+SAX.endElement(noframes)
+SAX.endElement(frameset)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.ignorableWhitespace(
+, 1)
+SAX.endDocument()
diff --git a/result/HTML/doc3.htm b/result/HTML/doc3.htm
new file mode 100644
index 0000000..cd7e2b6
--- /dev/null
+++ b/result/HTML/doc3.htm
@@ -0,0 +1,888 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!-- saved from url=(0025)http://bp6.gamesquad.net/ --><!-- BEGIN Naviscope Javascript --><html>
+<head>
+<title>BP6.com #1 online resource for the BP6 Mobo....</title>
+<script language="javascript">

+          NS_ActualOpen=window.open;

+          function NS_NullWindow(){this.window;}

+          function NS_NewOpen(url,nam,atr){return(new NS_NullWindow());}

+          window.open=NS_NewOpen;

+</script>
+<!-- END Naviscope Javascript -->!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 3.2//EN&quot;&gt;<!--last modified on Tuesday, February 22, 2000 11:47 PM --><meta content="text/html;CHARSET=iso-8859-1" http-equiv="Content-Type">
+<meta content="Tim" name="Author">
+<style type="text/css">A.nav {

+	COLOR: #003399; TEXT-DECORATION: none

+}

+A.nav:hover {

+	COLOR: #3366cc; TEXT-DECORATION: underline

+}

+</style>
+<script language="JavaScript">
+<!-- Idea by:  Nic Wolfe (Nic@TimelapseProductions.com) --><!-- Web URL:  http://fineline.xs.mw --><!-- This script and many more are available free online at --><!-- The JavaScript Source!! http://javascript.internet.com --><!-- Begin
+function popUp(URL) {
+day = new Date();
+id = day.getTime();
+eval("page" + id + " = window.open(URL, '" + id + "', 'toolbars=0, scrollbars=0, location=0, statusbars=0, menubars=0, resizable=0, width=145, height=250');");
+}
+// End -->
+</script>
+<meta content="MSHTML 5.00.3103.1000" name="GENERATOR">
+</head>
+<body aLink="red" bgColor="black" link="red" text="white" vLink="red">
+<p>
+<div align="center">
+<table border="0" cellPadding="0" cellSpacing="0" width="80%"><tbody>
+<tr>
+<td vAlign="top" width="31"><a href="http://bp6.gamesquad.net/"><img align="bottom" border="0" height="74" src="doc3_files/logo.gif" width="252"></a></td>
+<td align="left" bgColor="#000000">
+<img height="15" src="doc3_files/spacer.gif" width="15">
+<!-- START GAMESQUAD.NET IFRAME RICH MEDIA CODE --><!-- © 2000 GameSquad.net All Rights Reserved. --><iframe border="0" frameBorder="no" height="60" marginHeight="0" marginWidth="0" scrolling="no" src="doc3_files/adcycle.htm" width="468"><a href="http://ads.gamesquad.net/addclick.exe/adclick.cgi?REGION=game|tech|ent&amp;id=1" target="_top"><img src="http://ads.gamesquad.net/addclick.exe/adcycle.cgi?group=52&amp;media=1&amp;id=1" width="468" height="60" border="0" ALT="GSN ROS Ad"></a></iframe>
+<!-- END GAMESQUAD.NET IFRAME RICH MEDIA CODE --><br>
+<img height="15" src="doc3_files/spacer.gif" width="400">
+</td>
+</tr>
+<tr><td bgColor="#003399" colSpan="2"><p align="right">
+<img align="right" border="0" height="18" hspace="0" src="doc3_files/trcorner.gif" width="20">
+<img align="left" border="0" height="18" hspace="0" src="doc3_files/tlcorner.gif" width="20">
+<font face="Verdana" size="2">Monday, July 31st, 2000</font>
+</p></td></tr>
+<tr><td colSpan="2"><table bgColor="#003399" border="0" cellPadding="0" cellSpacing="4" width="100%"><tbody><tr><td bgColor="#666666" width="100%"><center>
+<p>
+<table bgColor="black" border="0" cellPadding="0" cellSpacing="1" width="100%"><tbody><tr><td background="doc3_files/hscan.gif" bgColor="#666666" width="100%">
+<img height="1" src="doc3_files/spacer.gif" width="738">
+<br>
+<center><table border="0" cellPadding="2" cellSpacing="0" width="91%"><tbody><tr>
+<td vAlign="top" width="15%"><p align="center">
+<a href="http://bp6.gamesquad.net/specs.phtml"><img align="bottom" alt="Abit BP6 Motherboard specification and information." border="0" height="45" src="doc3_files/bp6icon.gif" width="70"></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/specs.phtml"><font color="white" face="Verdana" size="1">BP6 Specs</font></a>
+</p></td>
+<td vAlign="top" width="15%"><p align="center">
+<a href="http://bp6.gamesquad.net/bxcool.phtml"><img align="bottom" alt="How to cool the BX Chipset on your BP6." border="0" height="45" src="doc3_files/bxcool.gif" width="70"></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/uc.phtml"><font color="white" face="Verdana" size="1">BX Cooling</font></a>
+</p></td>
+<td vAlign="top" width="15%"><p align="center">
+<a href="http://bp6.gamesquad.net/contest.phtml"><img align="bottom" alt="The U;timate Gaming Contest - Coming Soon!" border="0" height="45" src="doc3_files/ugmcontest.gif" width="70"></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/contest.phtml"><font color="white" face="Verdana" size="1">UGM Contest</font></a>
+</p></td>
+<td vAlign="top" width="15%"><p align="center">
+<a href="http://bp6.gamesquad.net/uc.phtml"><img align="bottom" alt="Cooling &amp; Heatsink review for the BP6." border="0" height="45" src="doc3_files/alpha.gif" width="70"></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/uc.phtml"><font color="white" face="Verdana" size="1">Heatsinks</font></a>
+</p></td>
+<td vAlign="top" width="15%"><p align="center">
+<a href="http://bp6.gamesquad.net/101.phtml"><img align="bottom" alt="BP6 101 - Class is now in session. Welcome newbies!" border="0" height="45" src="doc3_files/bp6101.gif" width="70"></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/101.phtml"><font color="white" face="Verdana" size="1">BP6 101</font></a>
+</p></td>
+<td vAlign="top" width="15%"><p align="center">
+<a href="http://bp6.gamesquad.net/win2k_install.phtml"><img align="bottom" alt="Install guide for installing Windows 2000 on the BP6 " border="0" height="45" src="doc3_files/win2kht.gif" width="70"></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/win2k_install.phtml"><font color="white" face="Verdana" size="1">Win2k Install</font></a>
+</p></td>
+<td vAlign="top" width="15%"><p align="center">
+<a href="http://www.gentus.com/">
+<img align="bottom" alt="Taking a first look at the Abit Linux release called " border="0" height="45" src="doc3_files/gentusbox.gif" width="70" Gentus>?.?&gt;</a>
+<br>
+<a href="http://www.gentus.com/"><font color="white" face="Verdana" size="1">Gentus</font></a>
+</p></td>
+</tr></tbody></table></center>
+</tbody></table>
+</center></tbody></table>
+</tbody></table>
+<table bgColor="#003399" border="0" cellSpacing="6" width="80%"><tbody><tr>
+<td bgColor="black" vAlign="top" width="10%"><table border="0" cellPadding="3" cellSpacing="0" width="100%"><tbody><tr><td width="100%">
+<img height="1" src="doc3_files/spacer.gif" width="111">
+<br>
+<b><font color="yellow" face="Verdana" size="2">REVIEWS</font></b>
+<font face="Verdana" size="2">
+<br>
+<hr align="center">
+</font>
+<a href="http://bp6.gamesquad.net/bp6reviews.phtml"><font color="white" face="Verdana" size="1">BP6 Reviews</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/h2o.phtml"><font color="white" face="Verdana" size="1">BP6 Watercooling</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/bxcool.phtml"><font color="white" face="Verdana" size="1">BX Chipset Cooling</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/benchmark.phtml"><font color="white" face="Verdana" size="1">Benchmarks</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/bp6fsb.phtml"><font color="white" face="Verdana" size="1">BP6FSB Utility</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/powerleap.phtml"><font color="white" face="Verdana" size="1">PowerLeap NEO S370</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/seti.phtml"><font color="white" face="Verdana" size="1">SETI on the BP6</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/orbs.phtml"><font color="white" face="Verdana" size="1">Golden Orbs I</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/orbs/orbs2.phtml"><font color="white" face="Verdana" size="1">Golden Orbs II</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/Q6fix.phtml"><font color="white" face="Verdana" size="1">VTT Solution</font></a>
+<font face="Verdana" size="1">
+<br>
+<br>
+</font>
+<b><font color="yellow" face="Verdana" size="2">NAVIGATE</font></b>
+<font color="yellow" face="Verdana" size="2"><hr align="center"></font>
+<a href="http://www.bp6.com/"><font color="white" face="Verdana" size="1">News</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/chat.phtml"><font color="white" face="Verdana" size="1">Online Text Chat</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="javascript:popUp('chat_popup.htm')"><font color="white" face="Verdana" size="1">Voice Chat</font></a>
+<br>
+<a href="http://216.247.220.192/Forum"><font color="white" face="Verdana" size="1">Messageboard</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/cooling"><font color="white" face="Verdana" size="1">Temp. Converter</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/uc.phtml"><font color="white" face="Verdana" size="1">Picture Gallery</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/bios.phtml"><font color="white" face="Verdana" size="1">Latest BIOS</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/files/"><font color="white" face="Verdana" size="1">Drivers &amp; Files</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/uc.phtml"><font color="white" face="Verdana" size="1">UGM of the week</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/contest.phtml"><font color="white" face="Verdana" size="1">BP6 Contest</font></a>
+<font face="Verdana" size="1">
+<br>
+<br>
+</font>
+<b><font color="yellow" face="Verdana" size="2">OTHER STUFF</font></b>
+<font color="yellow" face="Verdana" size="2"><hr align="center"></font>
+<a href="http://bp6.gamesquad.net/whois.phtml"><font color="white" face="Verdana" size="1">Who is Tim?</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="mailto:tim@bp6.com"><font color="white" face="Verdana" size="1">Contact BP6.com</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/uc.phtml"><font color="white" face="Verdana" size="1">Affiliates Section</font></a>
+<font face="Verdana" size="1"><br></font>
+<a href="http://bp6.gamesquad.net/uc.phtml"><font color="white" face="Verdana" size="1">Sponsors Section <br>
+</font></a>
+<a href="http://bp6.gamesquad.net/links.phtml"><font color="white" face="Verdana" size="1">Links<br>
+<br>
+</font></a>
+<b><font color="yellow" face="Verdana" size="2">PC SPECIALS</font></b>
+<font color="yellow" face="Verdana" size="2"><hr align="center"></font>
+<a href="http://bp6.gamesquad.net/specials.phtml"><font color="white" face="Verdana" size="1">Vendor 

+            Specials<br>
+<br>
+</font></a>
+<br>
+<b><font color="yellow" face="Verdana" size="2">Pic of the day</font></b>
+<hr>
+<center><p align="center"><font face="Verdana, Arial, Helvetica" size="1"><a href="http://bp6.gamesquad.net/cgi-bin/schlabo/potd.pl"><img alt="No picture is available for today." border="0" src="doc3_files/potd_na_110x83.gif"></a></font></p></center>
+<br>
+<center></center>
+<br>
+<!--<A HREF="code:javascript:ID_FTPWebView.InvokeHelp()"><FONT SIZE="1" COLOR="white" FACE="Verdana">FTP Help</FONT></A>-->
+</td></tr></tbody></table>
+<td bgColor="white" vAlign="top" width="80%">
+<img height="1" src="doc3_files/spacer.gif" width="490">
+<br>
+<center>
+<p>
+<table bgColor="white" border="0" cellPadding="10" cellSpacing="0" height="100%" width="100%"><tbody><tr><td bgColor="white" vAlign="top" width="100%">
+<center><a href="http://www.encounter2001.com/" target="_blank"><img border="0" height="60" src="doc3_files/banner2.gif" width="468"></a></center>
+<br>
+<a name="news_top"></a>
+<font color="#003366" face="verdana,arial" size="2"><b>Headlines</b></font>
+<br>
+<font face="arial" size="1"><a class="nav" href="http://bp6.gamesquad.net/index.phtml#newsitem965012956,78924,">Chat 

+            with ABIT - 8:09PM PDT</a></font>
+<br>
+<font face="arial" size="1"><a class="nav" href="http://bp6.gamesquad.net/index.phtml#newsitem964766837,26344,">Fixed 

+            wallpaper - 11:47PM PDT</a></font>
+<br>
+<font face="arial" size="1"><a class="nav" href="http://bp6.gamesquad.net/index.phtml#newsitem964762841,25865,">Seti 

+            update - 10:40PM PDT</a></font>
+<br>
+<font face="arial" size="1"><a class="nav" href="http://bp6.gamesquad.net/index.phtml#newsitem964732235,45502,">Judge 

+            gives Napster the Boot!! - 2:10PM PDT</a></font>
+<br>
+<font face="arial" size="1"><a class="nav" href="http://bp6.gamesquad.net/index.phtml#newsitem964713289,83675,">Ram 

+            Sinks.. more cooling for small places. - 8:54AM 

+            PDT</a></font>
+<br>
+<font face="arial" size="1"><a class="nav" href="http://bp6.gamesquad.net/index.phtml#newsitem964671589,7831,">is 

+            it [H]ard? - 9:19PM PDT</a></font>
+<br>
+<font face="arial" size="1"><a class="nav" href="http://bp6.gamesquad.net/index.phtml#newsitem964644047,60218,">WiLd 

+            CaSe!! - 1:40PM PDT</a></font>
+<br>
+<font face="arial" size="1"><a class="nav" href="http://bp6.gamesquad.net/index.phtml#newsitem964631110,84122,">What 

+            the heck is a Peltier?!?! - 10:05AM PDT</a></font>
+<br>
+<font face="arial" size="1"><a class="nav" href="http://bp6.gamesquad.net/index.phtml#newsitem964587833,74573,">HELLO 

+            EVERYONE!!! - 10:03PM PDT</a></font>
+<br>
+<font face="arial" size="1"><a class="nav" href="http://bp6.gamesquad.net/index.phtml#newsitem964429577,13375,">BP6 

+            Q3 server up and running.. - 2:06AM PDT</a></font>
+<br>
+<br>
+<!-- NP v3.7.5 --><a name="newsitem965012956,78924,"></a>
+<table bgColor="#003399" width="100%"><tbody><tr><td><font color="#ffffff" face="Verdana,arial" size="2"><b>Sunday, 

+                  July 30, 2000</b></font></td></tr></tbody></table>
+<br>
+<!--<hr noshade width=100%>--><b><u><font color="#003366" face="Verdana, Arial" size="2">Chat with 

+            ABIT</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:Holodeck@bp6.com">Holodeck2</a> @ 8:09PM 

+            PDT</small>  <a href="http://bp6.gamesquad.net/news/965012956,78924,.html">
+<img border="0" src="doc3_files/comments.gif">0 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">I&#x2019;m slacking a little. All game no 

+            work makes Holodeck2 a happy boy :-)<br>
+<br>Wallpaper update: I got 

+            off my lazy ass and redid the 1280x1024 wall paper, now it has the 2 

+            celerons.<br>
+<br>
+<b><a href="http://fullon3d.com/chat/abit/" target="3d">Fullon3d had a live chat with that Eric guy from Abit. 

+            </a></b>Submitted by: MJS<br>
+<br>Here&#x2019;s a little clip:<br>[Falcon] 

+            BP6-2??<br>[EricBoeing] We already have a micro ATX dual flip-chip 

+            board<br>[EricBoeing] but it's OEM only<br>[EricBoeing] the full ATX 

+            version should be out Septemberish<br>
+</font>
+<br>
+<br>
+<a name="newsitem964766837,26344,"></a>
+<table bgColor="#003399" width="100%"><tbody><tr><td><font color="#ffffff" face="Verdana,arial" size="2"><b>Thursday, 

+                  July 27, 2000</b></font></td></tr></tbody></table>
+<br>
+<!--<hr noshade width=100%>--><b><u><font color="#003366" face="Verdana, Arial" size="2">Fixed 

+            wallpaper</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:Holodeck@bp6.com">Holodeck2</a> @ 11:47PM 

+            PDT</small>  <a href="http://bp6.gamesquad.net/news/964766837,26344,.html">
+<img border="0" src="doc3_files/comments.gif">5 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">
+<b>Get them now!!</b>
+<br>This is a 

+            fixed bp6 wallpaper. In all the popular flavors, err... 

+            resolutions.<br>
+<img height="180" src="doc3_files/3-800.jpg" width="240">
+<br>It's still the Intels Inside one with a spelling 

+            change; from &quot;Mothboard&quot; to &quot;Motherboard&quot;<br>
+<br>Thanks to Matt for 

+            pointing that out to me.<br>I would also like to thank Kevin for 

+            hosting my last batch and Radu for the previous &quot;DUEL&quot;/&quot;DUAL&quot; 

+            error.<br>And 1 more person, THANK YOU TIM for letting me borrow 

+            your server space ;-)<br>
+<br>If you need a weird resolution, feel 

+            free to <a href="mailto:Holodeck2@home.com">e-mail</a> me requesting 

+            for one.<br>If you have ideas or more errors to point out, <a href="mailto:Holodeck2@home.com">mailto:Holodeck2@home.com</a>
+<br>
+<br>
+<a href="doc3_files/3-800.jpg" target="800">800x600 </a>
+<br>
+<a href="http://www.bp6.com/pics/holodeck2/wallpaper/3-1024.jpg" target="800">1024x768 </a>
+<br>
+<a href="http://www.bp6.com/pics/holodeck2/wallpaper/3-1152.jpg" target="800">1152x864 </a>
+<br>
+<a href="http://www.bp6.com/pics/holodeck2/wallpaper/3-1280x1024.jpg" target="800">1280x1024 </a>
+<br>
+<a href="http://www.bp6.com/pics/holodeck2/wallpaper/3-1600.jpg" target="800">1600x1200 </a>
+<br>
+<p>Enjoy :-)<br>
+</p>
+<p>
+<a href="mailto:Holodeck2@home.com">Holodeck2,</a>
+<br>[H]ard at 

+            work on the Brand Spanking New Wallpaper.<br>
+</p>
+</font>
+<br>
+<br>
+<a name="newsitem964762841,25865,"></a>
+<b><u><font color="#003366" face="Verdana, Arial" size="2">Seti update</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:Holodeck@bp6.com">Holodeck2</a> @ 10:40PM 

+            PDT</small>  <a href="http://bp6.gamesquad.net/news/964762841,25865,.html">
+<img border="0" src="doc3_files/comments.gif">5 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">
+<img height="54" src="doc3_files/setiupdate.jpg" width="400">
+<br>You like the 

+            pic?<br>
+<br>Bp6 User Group Update:<br>Completed 61531 

+            units!!<br>
+<b>#168 on Top 200 All Groups</b> (Going to pass CLRC in 

+            a few days)<br>
+<b>#74 on Top 200 Teams</b> (Gaining fast on 

+            Starfleet)<br>
+<br>We are flying though at the speed of light (may be 

+            a little slower).<br>Good job everyone!!<br>
+<br>Check this page at 

+            least once a day for new stuff :-)<br>
+</font>
+<br>
+<br>
+<a name="newsitem964732235,45502,"></a>
+<b><u><font color="#003366" face="Verdana, Arial" size="2">Judge gives Napster the 

+            Boot!!</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:Holodeck@bp6.com">Holodeck2</a> @ 2:10PM 

+            PDT</small>  <a href="http://bp6.gamesquad.net/news/964732235,45502,.html">
+<img border="0" src="doc3_files/comments.gif">0 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">Good afternoon for everyone living in 

+            EST. I was going to post today morning but I didn't. Here's my 

+            story:<br>I woke up and thought about posting something but I 

+            decided to wax my car before the sun came up (draw your own 

+            conclusions), wax on, wax off, wax on,..., did that for about an 

+            hour. Then I saw the sun rise (Aaahh I'm melting... not). I sat in 

+            front of my comp and started to search for good news to post. Saw 

+            that a stoopid judge temporally shuts down napster. Goes to room and 

+            cry. and now I'm here :-)<br>
+<br>
+<a href="http://www.msnbc.com/news/437532.asp" target="Judge vs Napster">Judge shuts Napster down

+            <p><img height="143" src="doc3_files/669915.jpg" width="200"></p>
+</a>
+<br>Check out the Goofy guy in the suit<br>He's Sean 

+            Fanning, founder of Napster.<br>
+<br>Got news?? <a href="mailto:Holodeck2@home.com">mailto:Holodeck2@home.com</a>
+<br>
+</font>
+<br>
+<br>
+<a name="newsitem964713289,83675,"></a>
+<b><u><font color="#003366" face="Verdana, Arial" size="2">Ram Sinks.. more cooling for small 

+            places.</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:tim@bp6.com">tim</a> @ 8:54AM PDT</small>  <a href="http://bp6.gamesquad.net/news/964713289,83675,.html">
+<img border="0" src="doc3_files/comments.gif">0 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">Need some cooling for your Videocard 

+            memory to get a little extra overclockability and FPS? <a href="http://www.overclockershideout.com/RamSinks.html" target="_BLANK">Overclockers Hiedout Ram Sinks</a> They just notified 

+            me of their new design.<br>
+<img border="1" src="doc3_files/ramsink.jpg">
+</font>
+<br>
+<br>
+<a name="newsitem964671589,7831,"></a>
+<table bgColor="#003399" width="100%"><tbody><tr><td><font color="#ffffff" face="Verdana,arial" size="2"><b>Wednesday, July 26, 

+            2000</b></font></td></tr></tbody></table>
+<br>
+<!--<hr noshade width=100%>--><b><u><font color="#003366" face="Verdana, Arial" size="2">is it 

+            [H]ard?</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:Holodeck@bp6.com">Holodeck2</a> @ 9:19PM 

+            PDT</small>  <a href="http://bp6.gamesquad.net/news/964671589,7831,.html">
+<img border="0" src="doc3_files/comments.gif">0 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">Big heatsinks are good, very good. The 

+            bigger the better.<br>You can never can have a too big of heatsink 

+            on a small chip (CPU, GPU, CHIPSET, etc)<br>
+<br>
+<img height="173" src="doc3_files/voodooside2.jpg" width="230">
+<br>My overclocked 

+            Voodoo3 2000 with a BIG mofo heatsink on top.<br>Peltier and 

+            watercooling next up :-)<br>(if you pry off the heatsink you void 

+            the warranty )<br>
+<br>it was originally posted on <a href="http://www.hardocp.com/">[H]ardOCP </a>
+<br>I&#x2019;m not only a 

+            BP6er but also a [H]ardOCPer<br>
+</font>
+<br>
+<br>
+<a name="newsitem964644047,60218,"></a>
+<b><u><font color="#003366" face="Verdana, Arial" size="2">WiLd CaSe!!</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:Holodeck@bp6.com">Holodeck2</a> @ 1:40PM 

+            PDT</small>  <a href="http://bp6.gamesquad.net/news/964644047,60218,.html">
+<img border="0" src="doc3_files/comments.gif">8 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">Now this person really knows how to 

+            keep his case cool!!<br>Addin an 18&quot; Fan!! WOW!!<br>
+<br>
+<a href="http://www.envador.com/Photos/PVCII/" target="_blank"><img src="doc3_files/TN_OpenedUp1.jpg"></a>
+<br>Click to go to his 

+            site.<br>
+</font>
+<br>
+<br>
+<a name="newsitem964631110,84122,"></a>
+<b><u><font color="#003366" face="Verdana, Arial" size="2">What the heck is a 

+            Peltier?!?!</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:Holodeck@bp6.com">Holodeck2</a> @ 10:05AM 

+            PDT</small>  <a href="http://bp6.gamesquad.net/news/964631110,84122,.html">
+<img border="0" src="doc3_files/comments.gif">6 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">This is for all you people who wanted 

+            to know what a peltier is.<br>
+<br>The quest fo the Perfect 

+            Peltier<br>
+<a href="http://www.tweakmax.com/html/peltier/peltier-1.cfm" target="_blank"><img src="doc3_files/peltier.jpg"></a>
+<br>Thanks to 

+            <a href="http://www.tweakmax.com/" target="_blank">TweakMax.com</a>
+<br>
+<br>Note: Today morning when I woke up I saw my whole screen 

+            cluttered with a bunch of IMs!! I live in the USA on EST. If you 

+            live somewhere else please check the time in my area. for example: 

+            If you live in Europe and IM me in the morning your time I would be 

+            sleeping it would be like 4 in the morning here. Just to let you 

+            know <img src="doc3_files/smile.gif">
+<br>I'm not angry at anyone... 

+            good thing I have a long fuse <img src="doc3_files/tongue.gif">
+<br>
+</font>
+<br>
+<br>
+<a name="newsitem964587833,74573,"></a>
+<table bgColor="#003399" width="100%"><tbody><tr><td><font color="#ffffff" face="Verdana,arial" size="2"><b>Tuesday, 

+                  July 25, 2000</b></font></td></tr></tbody></table>
+<br>
+<!--<hr noshade width=100%>--><b><u><font color="#003366" face="Verdana, Arial" size="2">HELLO 

+            EVERYONE!!!</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:Holodeck@bp6.com">Holodeck2</a> @ 10:03PM 

+            PDT</small>  <br>
+<font color="black" face="Arial" size="2">Hello 

+            everyone, Woohoo!! I'm on!!<br>Who is this Holodeck2 person 

+            anyways?!?! Read on :-)<br>I&#x2019;m a regular on the bp6 messageboard, 

+            trying to help people out with their problems.<br>I&#x2019;m the 

+            self-proclaimed bp6 cooling expert, If you have a cooling idea, I&#x2019;ve 

+            probably already done it and can offer some incite.<br>My computer 

+            is always on so you can contact me whenever... problem is, I'm not 

+            always in front of it. I'll try to update this page and keep 

+            everyone happy :-)<br>Any Questions or comments, you can either 

+            contact me or post it on the messageboard.<br>
+<br>Ways to contact 

+            me.<br>E-mail: <a href="mailto:Holodeck2@home.com">Holodeck2@home.com</a> (All E-mails 

+            will be answered in 24 hours or less, I guarantee it.)<br>When you 

+            write me an e-mail please put in the subject line &quot;BP6&quot; then the 

+            rest of your subject so my e-mail program can sort it, thanks<br>
+<a href="http://www.aol.com/aim">AIM: </a>Holodeck2 (instant response 

+            if I&#x2019;m in front of my comp and not trying to frag someone)<br>
+<a href="http://www.icq.com/download">ICQ: </a>82640218 (rarely 

+            on)<br>
+<br>P.S. If someone named &#x201C;Digital Vortex&#x201D; on either Quake 3 

+            or 2 frags you, it&#x2019;s probably me. ;-)<br>
+</font>
+<br>
+<br>
+<a name="newsitem964429577,13375,"></a>
+<table bgColor="#003399" width="100%"><tbody><tr><td><font color="#ffffff" face="Verdana,arial" size="2"><b>Monday, 

+                  July 24, 2000</b></font></td></tr></tbody></table>
+<br>
+<!--<hr noshade width=100%>--><b><u><font color="#003366" face="Verdana, Arial" size="2">BP6 Q3 server up and 

+            running..</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:tim@bp6.com">tim</a> @ 2:06AM PDT</small>  <a href="http://bp6.gamesquad.net/news/964429577,13375,.html">
+<img border="0" src="doc3_files/comments.gif">3 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">Setup a Q3 server for anyone wanting 

+            to practice in preparation for Quakecon.. Connect to bp6.dyndns.org 

+            default port. (SERVER: BP6 system, 256 MB ram, celeron 600 on a T3 

+            connection)... Will be moved to another BP6 server eventually. This 

+            is only a temporary test of the system and net connection. <br>(BTW- 

+            there are a few bot's running around in there..)</font>
+<br>
+<br>
+<a name="newsitem964425184,95812,"></a>
+<b><u><font color="#003366" face="Verdana, Arial" size="2">BIOS Savior to the 

+            rescue....</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:tim@bp6.com">tim</a> @ 12:53AM PDT</small>  <a href="http://bp6.gamesquad.net/news/964425184,95812,.html">
+<img border="0" src="doc3_files/comments.gif">2 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">Do you sweat during the BIOS flashing 

+            procedure on your BP6 mobo? If so then this little gadget maybe 

+            worth a first look. It's called the &quot;<b>RD1 BIOS Savior</b>&quot; and it 

+            plugs in between your BIOS ROM and the BIOS ROM socket on your mobo. 

+            This device will backup your BIOS and and allow you to recover your 

+            BIOS in the event that your flashing session goes wrong. In the 

+            event of a bad flash, just flip a switch on the RDI and boot up your 

+            system, and flash again. This is also good as a failsafe in case you 

+            don't believe in Virus Protecting your computer. (Thanks to Fred for 

+            link)<br>
+<a href="http://www.ioss.com.tw/eg/rd1/RD1info0004.PDF" target="_NEW">Manufacturers Brochure</a> (PDF Format)<br>
+<a href="http://192.216.185.10/mwave/doc/A06950.html" target="_BLANK&quot;">Another info page</a>
+<br>
+<a href="http://192.216.185.10/mwave/ProdMB-AC-MW.hmx?UID=&amp;CID=&amp;updepts=MB&amp;DNAME=%3Cb%3EMotherboards%3C%2Fb%3E&amp;Back=ProdMB-AC-MW.hmx?" target="_BLANK">Available for about $20</a>
+<br>
+<br>
+<img src="doc3_files/rd1.jpg">
+</font>
+<br>
+<br>
+<a name="newsitem963875853,12731,"></a>
+<table bgColor="#003399" width="100%"><tbody><tr><td><font color="#ffffff" face="Verdana,arial" size="2"><b>Monday, 

+                  July 17, 2000</b></font></td></tr></tbody></table>
+<br>
+<!--<hr noshade width=100%>--><b><u><font color="#003366" face="Verdana, Arial" size="2">How To 

+            Overclock</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:killz@i82hq.com">DareDevil</a> @ 4:17PM 

+            PDT</small>  <a href="http://bp6.gamesquad.net/news/963875853,12731,.html">
+<img border="0" src="doc3_files/comments.gif">3 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">For those of you who are new to 

+            overclocking, this guide will explain to you how to overclock, and 

+            what some of the terms are. Like 'FSB' (what the heck is that!? 

+            :0))<br>
+<br>
+<a href="http://netkills.qgl.org/a_oc_comp.shtml" target="_blank">How To Overclock</a>
+</font>
+<br>
+<br>
+<a name="newsitem963875485,23353,"></a>
+<b><u><font color="#003366" face="Verdana, Arial" size="2">The Cardcooler 

+            XT</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:killz@i82hq.com">DareDevil</a> @ 4:11PM 

+            PDT</small>  <a href="http://bp6.gamesquad.net/news/963875485,23353,.html">
+<img border="0" src="doc3_files/comments.gif">1 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">Wow! I am impressed! Nevermind keeping 

+            the CPU's cool... Keep your whole board cool!<br>
+<br>
+<i>Even if your 

+            not overclocking your system (or planning on it), this unit will 

+            provide system stability and longevity. What would happen one day of 

+            your GeForce or CPU fan went dead? You can also think of this 

+            cooling unit as a backup to essential cooling fans in your 

+            system.</i>
+<br>
+<br>Check this out!<br>
+<br>
+<a href="http://www.brokenpixel.com/articles/coolerXT/cardcoolerXT_1.shtml" target="_blank">http://www.brokenpixel.com/articles/coolerXT/cardcoolerXT_1.shtml</a>
+</font>
+<br>
+<br>
+<a name="newsitem963859982,88982,"></a>
+<b><u><font color="#003366" face="Verdana, Arial" size="2">'Nerd 

+            Inside'</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:killz@i82hq.com">DareDevil</a> @ 11:53AM 

+            PDT</small>  <a href="http://bp6.gamesquad.net/news/963859982,88982,.html">
+<img border="0" src="doc3_files/comments.gif">1 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">We all need to have some fun 

+            sometimes! Check out this little web site that sells 'nerd' clothing 

+            ;) (I like the bibs in the Junior Hackerz section) :-Þ<br>
+<br>
+<div align="center"><a href="http://www.nerdgear.com/" target="_blank"><img border="0" src="doc3_files/nerdinside.gif"></a></div>
+</font>
+<br>
+<br>
+<a name="newsitem963819796,9688,"></a>
+<b><u><font color="#003366" face="Verdana, Arial" size="2">Dual PSU Wiring diagram... (preview to 

+            Part 1 Watercooling Project)</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:tim@bp6.com">tim</a> @ 12:43AM PDT</small>  <a href="http://bp6.gamesquad.net/news/963819796,9688,.html">
+<img border="0" src="doc3_files/comments.gif">11 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">When is comes to overclocking your 

+            system, cooling plays a big role. Powering all of those fans in your 

+            system can cause quite a strain on your PSU (Power Supply Unit). 

+            Depending on the number of peripherals in your system, adding a more 

+            powerfull PSU or adding a second PSU may be neccesary. For 

+            watercooling and using peltiers, dedicating a second PSU to power 

+            the Peltiers (TEC's) is a good idea. Here I have come up with 2 

+            diagrams on how I wired dual 300 watt ATX power supply units for the 

+            Blizzard BP6 watercooling project. Consider this part of Step 1. 

+            More will follow this week. BTW.. hacking up your PSU's is very 

+            dangerous and is not recommended unless you know what you are doing. 

+            <br>
+<br>View Diagram 1 <a href="http://bp6.gamesquad.net/images/wiring.jpg" target="_BLANK">here</a>.<br>View Diagram 2 <a href="http://bp6.gamesquad.net/images/psu2.gif" target="_BLANK">here</a>.<br>
+<br>I used Tap-In Squeeze Connectors and 

+            22 guage wire to connect the wires. You can get them at Radio Shack 

+            Part# 64-3053 or <a href="http://www.radioshack.com/ProductCatalog/ProductDetail/Index/1,2098,,00.html?SKUString1=64&amp;SKUString2=3053" target="_blank">click here</a>.</font>
+<br>
+<br>
+<a name="newsitem963766655,78511,"></a>
+<table bgColor="#003399" width="100%"><tbody><tr><td><font color="#ffffff" face="Verdana,arial" size="2"><b>Sunday, 

+                  July 16, 2000</b></font></td></tr></tbody></table>
+<br>
+<!--<hr noshade width=100%>--><b><u><font color="#003366" face="Verdana, Arial" size="2">RAM Overclocking? 

+            Hmmmmm.</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:killz@i82hq.com">DareDevil</a> @ 9:57AM 

+            PDT</small>  <a href="http://bp6.gamesquad.net/news/963766655,78511,.html">
+<img border="0" src="doc3_files/comments.gif">3 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">I know we're pretty big overclockers 

+            here at BP6.Com so, this is a post of choice ;-) I've seen the 

+            question in the message boards, 'why can't I overclock any higher?' 

+            Well, it's not always the CPU that's holding you back... Many other 

+            things need to be taken care of to overclock such as your PCI 

+            devices (can they handle the higher bus speed), the actual CPU, and 

+            your RAM. I'm not saying that that a high quality stick of silicon 

+            will enable you to overclock your 366MHz to 1 GHZ (I wish!), but, it 

+            will certainly help =)<br>
+<br>Extreme Overclocking has tested 

+            (overclocked) PC133 RAM to there full potential. Here's a quote I 

+            found and the link:<br>
+<br>
+<i>Well, the guys at Extreme Overclocking 

+            have been hard at work again with their latest review. This time 

+            they have put seven 128MB PC133 memory modules through the torture 

+            tests to determine their maximum overclocking potential. Which one's 

+            came out on top? Read the review to find out....</i>
+<br>
+<br>
+<a href="http://www.extremeoverclocking.com/reviews/memory/ram_roundup_1.html" target="_blank">Cooked RAM... Yummie</a>
+<br>
+<br>The 

+            ÐÐ.</font>
+<br>
+<br>
+<a name="newsitem963764236,76720,"></a>
+<b><u><font color="#003366" face="Verdana, Arial" size="2">CPU 

+            Guide</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:killz@i82hq.com">DareDevil</a> @ 9:17AM 

+            PDT</small>  <a href="http://bp6.gamesquad.net/news/963764236,76720,.html">
+<img border="0" src="doc3_files/comments.gif">0 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">A follow up on the 'Weekly CPU 

+            Prices', this guide will help you determine which cpu is best for 

+            you (and your board ;-)). Sent to me by Spanky, here's the 

+            link:<br>
+<br>
+<li><a href="http://www6.tomshardware.com/howto/00q2/000412/index.html" target="_blank">http://www6.tomshardware.com/howto/00q2/000412/index.html</a></li>
+</font>
+<br>
+<br>
+<a name="newsitem963685749,28290,"></a>
+<table bgColor="#003399" width="100%"><tbody><tr><td><font color="#ffffff" face="Verdana,arial" size="2"><b>Saturday, 

+                  July 15, 2000</b></font></td></tr></tbody></table>
+<br>
+<!--<hr noshade width=100%>--><b><u><font color="#003366" face="Verdana, Arial" size="2">Weekly CPU 

+            Prices</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:killz@i82hq.com">DareDevil</a> @ 11:29AM 

+            PDT</small>  <a href="http://bp6.gamesquad.net/news/963685749,28290,.html">
+<img border="0" src="doc3_files/comments.gif">2 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">Wow, found this very useful! Wanting 

+            to buy a new CPU? Check out this detailed price list!<br>
+<br>
+<a href="http://www.sharkyextreme.com/hardware/weekly_cpu/" target="_blank">Click Here.</a>
+<br>
+<br>Thanks Sharky 

+            Extreme!</font>
+<br>
+<br>
+<a name="newsitem963679881,35277,"></a>
+<b><u><font color="#003366" face="Verdana, Arial" size="2">Fast Wallpapers</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:killz@i82hq.com">DareDevil</a> @ 9:51AM 

+            PDT</small>  <a href="http://bp6.gamesquad.net/news/963679881,35277,.html">
+<img border="0" src="doc3_files/comments.gif">0 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">FAST-MHz has released some wallpapers! 

+            <a href="http://64.29.18.111/wallpaper/index.html" target="_blank">Click here</a> to view them. They come in sizes 

+            800x600 1024x768 and 1152x864. If you have your desktop set at a 

+            larger size, just use the 'stretch' function in desktop properties 

+            instead of 'center'. Works great.<br>
+<br>In other news, we want to 

+            finnish off all the sections at BP6.Com so, to start, we're going to 

+            work on the <a href="http://bp6.gamesquad.net/uc.phtml" target="_blank">Picture Gallery</a>. To help us out, you can send in 

+            all your cool, wierd, crazy pics that you may have to: <a href="mailto:thedaredevil@bp6.com">thedaredevil@bp6.com</a>. (The 

+            topic being computers, duh! :0) And no... I don't want to recieve 

+            any porno piccies in my mailbox! I have enough of those!) Kidding 

+            guys.<br>
+<br>Okay, that's all for now.<br>
+<br>The 

+            ÐÐ.</font>
+<br>
+<br>
+<a name="newsitem963619505,3764,"></a>
+<table bgColor="#003399" width="100%"><tbody><tr><td><font color="#ffffff" face="Verdana,arial" size="2"><b>Friday, 

+                  July 14, 2000</b></font></td></tr></tbody></table>
+<br>
+<!--<hr noshade width=100%>--><b><u><font color="#003366" face="Verdana, Arial" size="2">Hey 

+            There!</font></u></b>
+<br>
+<font color="#0066cc" face="Arial" size="1">
+<small>Posted by <a class="nav" href="mailto:killz@i82hq.com">DareDevil</a> @ 5:05PM 

+            PDT</small>  <a href="http://bp6.gamesquad.net/news/963619505,3764,.html">
+<img border="0" src="doc3_files/comments.gif">7 comments</a> 

+             | <a href="http://bp6.gamesquad.net/#news_top">top</a>
+</font>
+<br>
+<font color="black" face="Arial" size="2">Hey guys, just wanted to introduce 

+            myself, some of you may have already met me on the BP6.com board. 

+            I'll be posting up news from time to time now so, if you'd like, you 

+            may send me some news to be posted if you find any ( we don't want 

+            to flood Tim ;-) ).<br>
+<br>My e-mail address is <a href="mailto:killz@i82hq.com">killz@i82hq.com</a>
+<br>
+<br>Ciao for 

+            now.<br>
+<br>The ÐÐ.</font>
+<br>
+<br>
+</font>
+<center><iframe frameBorder="0" height="60" marginHeight="0" marginWidth="0" noResize scrolling="no" src="doc3_files/ad_iframe.htm" width="468"><a href="http://ads.adflight.com/go_static.asp?asid=7708" target="_top"><img width="468" height="60" border="0" alt="Advertisement" src="http://ads.adflight.com/ad_static.asp?pid=2097&amp;sid=1881&amp;asid=7708"></a></iframe></center>
+</tbody></table>
+</center>
+
+<td bgColor="silver" vAlign="top" width="10%"><center>
+<p>
+<table bgColor="silver" border="0" cellPadding="0" cellSpacing="0" width="100%"><tbody><tr><td COLSTART="1"><center>
+<!--	<FORM ACTION="/cgi-bin/subscribe.pl" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded">

+						<IMG SRC="/images/spacer.gif" WIDTH="111" HEIGHT="1"><BR>

+						<P><B><FONT SIZE="2" COLOR="#000066" FACE="Verdana">Newsletter</FONT></B><FONT SIZE="1" FACE="Verdana"><BR>

+						<INPUT TYPE="TEXT" NAME="email" SIZE="10" VALUE="ur@email.com"><BR>

+						<INPUT TYPE="HIDDEN" NAME="subscribe" SIZE="-1" VALUE="subscribe"><INPUT TYPE="IMAGE" SRC="/images/subscribe.gif" WIDTH="80"

+						HEIGHT="27" ALIGN="BOTTOM" BORDER="0"></FONT>

+						</FORM> --><form action="http://bp6.gamesquad.net/cgi-bin/news/viewnews.cgi?emaillist" method="post">
+<img height="1" src="doc3_files/spacer.gif" width="111">
+<br>
+<font size="1">Newsletter<br>
+<input name="npemail" size="13" value="e-mail addr.">
+<br>
+<input name="npsubscribe" style="BACKGROUND-COLOR: #000000; COLOR: #ffffff; FONT-FAMILY: Verdana; FONT-SIZE: xx-small; FONT-WEIGHT: bold" type="submit" value="Subscribe">
+<br>
+<!-- <input type="submit" name="npunsubscribe" value="Unsubscribe" style="font-size: xx-small; font-family: Verdana; font-weight: bold; color: #ffffff; background-color: #000000;"> -->
+</font>
+</form>
+<font size="1"><form action="http://bp6.gamesquad.net/cgi-bin/news/viewnews.cgi?search" method="post">Search news<br>
+<input name="searchstring" size="13">
+<br>
+<input name="submit" style="BACKGROUND-COLOR: #000000; COLOR: #ffffff; FONT-FAMILY: Verdana; FONT-SIZE: xx-small; FONT-WEIGHT: bold" type="submit" value="Submit">
+<br>
+<a href="http://bp6.gamesquad.net/cgi-bin/news/viewnews.cgi?newsall">News 

+            archive</a>
+</form></font>
+</center></td></tr></tbody></table>
+<!--				<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%" BGCOLOR="silver">

+					<TR>

+						<TD WIDTH="100%">

+							<P ALIGN="CENTER"><A HREF="http://www.free56k.com" target="_blank"><IMG SRC="/images/free56k.gif" WIDTH="100" HEIGHT="49"

+							ALIGN="BOTTOM" BORDER="0"></A>

+						</TD>

+					</TR>

+				</TABLE> 

+--><table bgColor="silver" border="0" cellPadding="0" cellSpacing="0" width="100%"><tbody><tr><td align="middle" width="100%">
+<!-- BEGIN GoTo.com Search Box --><script language="javascript" type="text/javascript"><!--

+							if ((parseInt(navigator.appVersion) >= 3)

+							&& (navigator.appName != "Netscape")) {

+							document.write("<IFRAME marginheight=0 frameborder=0 ");

+							document.write("marginwidth=0 scrolling=no width=100 height");

+							document.write("=90 ");

+							document.write("SRC=http://www.goto.com/d/ssn/dynconsole/?t");

+							document.write("ype=html&size=100x90&url=http://www.goto.co");

+							document.write("m/d/search/ssn/&target=_blank&Partner=SSN80");

+							document.write("42DF8478957377></IFRAME>");

+							} else if ((parseInt(navigator.appVersion) > 3)

+							&& (navigator.appName == "Netscape")) {

+							document.write("<SCRIPT language=javascript type=text/javas");

+							document.write("cript ");

+							document.write("SRC=http://www.goto.com/d/ssn/dynconsole/?t");

+							document.write("ype=js&size=100x90&url=http://www.goto.com/");

+							document.write("d/search/ssn/&target=_blank&Partner=SSN8042");

+							document.write("DF8478957377></SC");

+							document.write("RIPT>");

+							} else {

+							document.write("<A TARGET=_blank ");

+							document.write("HREF=http://www.goto.com/d/search/ssn/?from");

+							document.write("GIF=true>");

+							document.write("<IMG ismap ");

+							document.write("SRC=http://www.goto.com/d/ssn/dynconsole/?t");

+							document.write("ype=gif&size=100x90></A>");

+							}

+							// --></script>
+<b><noscript></noscript></b>
+<a href="http://www.goto.com/d/search/ssn/?fromGIF=true" target="_blank"><img align="bottom" border="0" height="90" isMap src="doc3_files/100x90.gif" width="100"></a>
+<b><a href="http://www.goto.com/d/search/ssn/?fromGIF=true" target="_blank"></a></b>
+<b></b>
+<b><!-- END GoTo.com Search Box --></b>
+<!-- Pricewatch Search Box --><form action="http://www.pricewatch.com/search/search.asp" method="get" target="_Blank"><center><p>
+<b><font color="white" face="ARIAL, HELVETICA" size="1">PC Price 

+            Search<br>
+</font></b>
+<input maxLength="30" name="criteria" size="10">
+<br>
+<input name="submit" style="BACKGROUND-COLOR: #000000; COLOR: #ffffff; FONT-FAMILY: Verdana; FONT-SIZE: xx-small; FONT-WEIGHT: bold" type="submit" value="Search">
+</p></center></form>
+<!-- Pricewatch Search Box --><a href="http://www.puicorp.com/bp6specials.htm" target="_BLANK"><img src="doc3_files/puibp6.gif"></a>
+<br>
+<br>
+<br>
+<br>
+<a href="http://store.yahoo.com/dunamis-site/maxtor.html" target="_BLANK">
+<img alt="BP6.com Special - Enter CODE: BP6-hd in the order (notes) to receive a discount" src="doc3_files/hd5.gif">
+<font size="1">
+<br>BP6.COM 

+            Special<br>Code:BP6-hd</font>
+</a>
+</td></tr></tbody></table>
+</center>
+</tbody></table>
+<table bgColor="silver" border="0" cellPadding="0" cellSpacing="0" height="100%" width="100%"><tbody><tr><td width="100%"> </td></tr></tbody></table>
+<!--	</TABLE>--><center></center>
+<tr><td COLSPAN="3" VALIGN="TOP" HEIGHT="70"> </td></tr>
+<table border="0" width="780"><tbody>
+<tr><td width="780"><p align="center">
+<font color="#999999" face="verdana,arial" size="1">Copyright 

+      ©1999-2000 BP6.com, All rights reserved.<br>Got news? Send it to </font>
+<a href="mailto:tim@bp6.com"><font color="white" face="Verdana" size="1">Tim</font></a>
+</p></td></tr>
+<!--	<TR>		<TD WIDTH="780">			<P ALIGN="CENTER"><FONT SIZE="1" COLOR="#999999" FACE="Verdana,arial">Site design by Tim Brinkley</FONT>		</TD>	</TR> -->
+</tbody></table>
+</div>
+<script> window.open=NS_ActualOpen; </script>
+</body>
+</html>
diff --git a/result/HTML/doc3.htm.err b/result/HTML/doc3.htm.err
new file mode 100644
index 0000000..aabc200
--- /dev/null
+++ b/result/HTML/doc3.htm.err
@@ -0,0 +1,93 @@
+./test/HTML/doc3.htm:10: error: htmlParseStartTag: invalid element name
+<!-- END Naviscope Javascript --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
+                                  ^
+./test/HTML/doc3.htm:52: error: htmlParseEntityRef: expecting ';'
+ href="http://ads.gamesquad.net/addclick.exe/adclick.cgi?REGION=game|tech|ent&i
+                                                                                ^
+./test/HTML/doc3.htm:52: error: htmlParseEntityRef: expecting ';'
+_top"><img src="http://ads.gamesquad.net/addclick.exe/adcycle.cgi?group=52&medi
+                                                                                ^
+./test/HTML/doc3.htm:52: error: htmlParseEntityRef: expecting ';'
+><img src="http://ads.gamesquad.net/addclick.exe/adcycle.cgi?group=52&media=1&i
+                                                                                ^
+./test/HTML/doc3.htm:145: error: error parsing attribute name
+                        width=70 Gentus?.?></A><BR><A 
+                                       ^
+./test/HTML/doc3.htm:145: error: htmlParseStartTag: problem parsing attributes
+                        width=70 Gentus?.?></A><BR><A 
+                                       ^
+./test/HTML/doc3.htm:145: error: Couldn't find end of Start Tag img
+                        width=70 Gentus?.?></A><BR><A 
+                                       ^
+./test/HTML/doc3.htm:148: error: Unexpected end tag : p
+  </P></TD></TR></TBODY></TABLE></CENTER></TD></TR></TBODY></TABLE></CENTER></P
+                                                                                ^
+./test/HTML/doc3.htm:236: error: Unexpected end tag : font
+            Specials<BR><BR></FONT></A><BR></FONT></A><B><FONT color=yellow 
+                                                  ^
+./test/HTML/doc3.htm:236: error: Unexpected end tag : a
+            Specials<BR><BR></FONT></A><BR></FONT></A><B><FONT color=yellow 
+                                                      ^
+./test/HTML/doc3.htm:747: error: htmlParseEntityRef: expecting ';'
+er=0 alt="Advertisement" src="http://ads.adflight.com/ad_static.asp?pid=2097&si
+                                                                                ^
+./test/HTML/doc3.htm:747: error: htmlParseEntityRef: expecting ';'
+Advertisement" src="http://ads.adflight.com/ad_static.asp?pid=2097&sid=1881&asi
+                                                                                ^
+./test/HTML/doc3.htm:747: error: Unexpected end tag : li
+light.com/ad_static.asp?pid=2097&sid=1881&asid=7708"></a></IFRAME></CENTER></LI
+                                                                                ^
+./test/HTML/doc3.htm:747: error: Unexpected end tag : font
+om/ad_static.asp?pid=2097&sid=1881&asid=7708"></a></IFRAME></CENTER></LI></FONT
+                                                                                ^
+./test/HTML/doc3.htm:747: error: Unexpected end tag : p
+=7708"></a></IFRAME></CENTER></LI></FONT></TD></TR></TBODY></TABLE></CENTER></P
+                                                                                ^
+./test/HTML/doc3.htm:772: error: Opening and ending tag mismatch: font and form
+            archive</A></FONT> </FORM></CENTER></TD></TR></TBODY></TABLE><!--		
+                              ^
+./test/HTML/doc3.htm:772: error: Unexpected end tag : form
+            archive</A></FONT> </FORM></CENTER></TD></TR></TBODY></TABLE><!--		
+                                      ^
+./test/HTML/doc3.htm:815: error: Opening and ending tag mismatch: b and noscript
+            <B><NOSCRIPT></B><A 
+                             ^
+./test/HTML/doc3.htm:820: error: Unexpected end tag : a
+            </A></A></B><B></NOSCRIPT></B><B><!-- END GoTo.com Search Box --></
+                    ^
+./test/HTML/doc3.htm:820: error: Unexpected end tag : noscript
+            </A></A></B><B></NOSCRIPT></B><B><!-- END GoTo.com Search Box --></
+                                      ^
+./test/HTML/doc3.htm:826: error: Opening and ending tag mismatch: form and center
+            </FORM><!-- Pricewatch Search Box --><A 
+                   ^
+./test/HTML/doc3.htm:833: error: Unexpected end tag : p
+            Special<BR>Code:BP6-hd</FONT></A> </P></CENTER></TD></TR></TBODY></
+                                                  ^
+./test/HTML/doc3.htm:833: error: Opening and ending tag mismatch: center and table
+            Special<BR>Code:BP6-hd</FONT></A> </P></CENTER></TD></TR></TBODY></
+                                                           ^
+./test/HTML/doc3.htm:839: error: Unexpected end tag : p
+width="100%">&nbsp;</TD></TR></TBODY></TABLE></P></CENTER></TR></TBODY></TABLE>
+                                                 ^
+./test/HTML/doc3.htm:839: error: Unexpected end tag : center
+width="100%">&nbsp;</TD></TR></TBODY></TABLE></P></CENTER></TR></TBODY></TABLE>
+                                                          ^
+./test/HTML/doc3.htm:839: error: Unexpected end tag : tr
+width="100%">&nbsp;</TD></TR></TBODY></TABLE></P></CENTER></TR></TBODY></TABLE>
+                                                               ^
+./test/HTML/doc3.htm:839: error: Unexpected end tag : tbody
+width="100%">&nbsp;</TD></TR></TBODY></TABLE></P></CENTER></TR></TBODY></TABLE>
+                                                                       ^
+./test/HTML/doc3.htm:839: error: Unexpected end tag : table
+width="100%">&nbsp;</TD></TR></TBODY></TABLE></P></CENTER></TR></TBODY></TABLE>
+                                                                               ^
+./test/HTML/doc3.htm:840: error: Unexpected end tag : td
+<CENTER></CENTER></TD></TR><TR><TD COLSPAN="3" VALIGN="TOP" 
+                      ^
+./test/HTML/doc3.htm:840: error: Unexpected end tag : tr
+<CENTER></CENTER></TD></TR><TR><TD COLSPAN="3" VALIGN="TOP" 
+                           ^
+./test/HTML/doc3.htm:841: error: Unexpected end tag : table
+HEIGHT="70">&nbsp;</TD> </TR></TABLE>
+                                    ^
diff --git a/result/HTML/doc3.htm.sax b/result/HTML/doc3.htm.sax
new file mode 100644
index 0000000..17c6734
--- /dev/null
+++ b/result/HTML/doc3.htm.sax
Binary files differ
diff --git a/result/HTML/entities.html b/result/HTML/entities.html
new file mode 100644
index 0000000..c2d4a84
--- /dev/null
+++ b/result/HTML/entities.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<html><body><p tst="a&amp;b" tst2="a&amp;b" tst3="a &amp; b">
+a&amp;b
+a&amp;b
+a &amp; b
+</p></body></html>
diff --git a/result/HTML/entities.html.err b/result/HTML/entities.html.err
new file mode 100644
index 0000000..a2bd6d0
--- /dev/null
+++ b/result/HTML/entities.html.err
@@ -0,0 +1,12 @@
+./test/HTML/entities.html:1: error: htmlParseEntityRef: expecting ';'
+<p tst="a&amp;b" tst2="a&b" tst3="a & b">
+                          ^
+./test/HTML/entities.html:1: error: htmlParseEntityRef: no name
+<p tst="a&amp;b" tst2="a&b" tst3="a & b">
+                                     ^
+./test/HTML/entities.html:3: error: htmlParseEntityRef: expecting ';'
+a&b
+  ^
+./test/HTML/entities.html:4: error: htmlParseEntityRef: no name
+a & b
+   ^
diff --git a/result/HTML/entities.html.sax b/result/HTML/entities.html.sax
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/HTML/entities.html.sax
diff --git a/result/HTML/fp40.htm.sax b/result/HTML/fp40.htm.sax
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/HTML/fp40.htm.sax
diff --git a/result/HTML/liclose.html.sax b/result/HTML/liclose.html.sax
new file mode 100644
index 0000000..8752acd
--- /dev/null
+++ b/result/HTML/liclose.html.sax
@@ -0,0 +1,38 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, http://www.w3.org/TR/REC-html40/loose.dtd)
+SAX.startElement(html)
+SAX.characters(
+, 1)
+SAX.startElement(head)
+SAX.characters(
+  , 3)
+SAX.startElement(title)
+SAX.endElement(title)
+SAX.characters(
+, 1)
+SAX.endElement(head)
+SAX.characters(
+, 1)
+SAX.startElement(body)
+SAX.characters(
+, 1)
+SAX.startElement(ul)
+SAX.characters(
+, 1)
+SAX.startElement(li)
+SAX.characters(First item
+, 11)
+SAX.endElement(li)
+SAX.startElement(li)
+SAX.characters(Second item, closes the first , 34)
+SAX.endElement(li)
+SAX.endElement(ul)
+SAX.characters(
+
+, 2)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.ignorableWhitespace(
+, 1)
+SAX.endDocument()
diff --git a/result/HTML/reg1.html.sax b/result/HTML/reg1.html.sax
new file mode 100644
index 0000000..0e52b63
--- /dev/null
+++ b/result/HTML/reg1.html.sax
@@ -0,0 +1,36 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElement(html)
+SAX.characters(
+, 1)
+SAX.startElement(head)
+SAX.characters(
+, 1)
+SAX.startElement(title)
+SAX.characters(Regression test 1, 17)
+SAX.endElement(title)
+SAX.characters(
+, 1)
+SAX.endElement(head)
+SAX.characters(
+, 1)
+SAX.startElement(body)
+SAX.characters(
+, 1)
+SAX.startElement(h1)
+SAX.characters(Regression test 1, 17)
+SAX.endElement(h1)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.characters(
+Ok file no problem
+, 20)
+SAX.endElement(p)
+SAX.endElement(body)
+SAX.characters(
+, 1)
+SAX.endElement(html)
+SAX.ignorableWhitespace(
+, 1)
+SAX.endDocument()
diff --git a/result/HTML/reg2.html.sax b/result/HTML/reg2.html.sax
new file mode 100644
index 0000000..c824c59
--- /dev/null
+++ b/result/HTML/reg2.html.sax
@@ -0,0 +1,41 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElement(html)
+SAX.characters(
+, 1)
+SAX.startElement(head)
+SAX.characters(
+, 1)
+SAX.startElement(title)
+SAX.characters(Regression test 2, 17)
+SAX.endElement(title)
+SAX.characters(
+, 1)
+SAX.endElement(head)
+SAX.characters(
+, 1)
+SAX.startElement(body)
+SAX.characters(
+, 1)
+SAX.startElement(h1)
+SAX.characters(Regression test 2, 17)
+SAX.endElement(h1)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.characters(
+Autoclose of tag P
+, 20)
+SAX.endElement(p)
+SAX.startElement(p)
+SAX.characters(
+Ok file no problem
+, 20)
+SAX.endElement(p)
+SAX.endElement(body)
+SAX.characters(
+, 1)
+SAX.endElement(html)
+SAX.ignorableWhitespace(
+, 1)
+SAX.endDocument()
diff --git a/result/HTML/reg3.html.sax b/result/HTML/reg3.html.sax
new file mode 100644
index 0000000..3dd6c02
--- /dev/null
+++ b/result/HTML/reg3.html.sax
@@ -0,0 +1,45 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElement(html)
+SAX.characters(
+, 1)
+SAX.startElement(head)
+SAX.characters(
+, 1)
+SAX.startElement(title)
+SAX.characters(Regression test 3, 17)
+SAX.endElement(title)
+SAX.characters(
+, 1)
+SAX.endElement(head)
+SAX.characters(
+, 1)
+SAX.startElement(body)
+SAX.characters(
+, 1)
+SAX.startElement(h1)
+SAX.characters(Regression test 3, 17)
+SAX.endElement(h1)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.characters(
+Autoclose of tag P
+, 20)
+SAX.endElement(p)
+SAX.startElement(hr)
+SAX.endElement(hr)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.characters(
+Ok file no problem
+, 20)
+SAX.endElement(p)
+SAX.endElement(body)
+SAX.characters(
+, 1)
+SAX.endElement(html)
+SAX.ignorableWhitespace(
+, 1)
+SAX.endDocument()
diff --git a/result/HTML/reg4.html.sax b/result/HTML/reg4.html.sax
new file mode 100644
index 0000000..80472e2
--- /dev/null
+++ b/result/HTML/reg4.html.sax
@@ -0,0 +1,43 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElement(html)
+SAX.characters(
+, 1)
+SAX.startElement(head)
+SAX.characters(
+, 1)
+SAX.startElement(title)
+SAX.characters(Regression test 4, 17)
+SAX.endElement(title)
+SAX.characters(
+, 1)
+SAX.endElement(head)
+SAX.characters(
+, 1)
+SAX.startElement(body)
+SAX.characters(
+, 1)
+SAX.startElement(h1)
+SAX.characters(Regression test 4, 17)
+SAX.endElement(h1)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.characters(
+Wrong close of tag P
+, 22)
+SAX.endElement(p)
+SAX.startElement(hr)
+SAX.endElement(hr)
+SAX.characters(
+, 1)
+SAX.error: Unexpected end tag : p
+SAX.characters(
+, 1)
+SAX.endElement(body)
+SAX.characters(
+, 1)
+SAX.endElement(html)
+SAX.ignorableWhitespace(
+, 1)
+SAX.endDocument()
diff --git a/result/HTML/test2.html.sax b/result/HTML/test2.html.sax
new file mode 100644
index 0000000..275ae1b
--- /dev/null
+++ b/result/HTML/test2.html.sax
@@ -0,0 +1,145 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, http://www.w3.org/TR/REC-html40/loose.dtd)
+SAX.startElement(html)
+SAX.startElement(head)
+SAX.characters( , 1)
+SAX.startElement(title)
+SAX.characters(Linux Today, 11)
+SAX.endElement(title)
+SAX.endElement(head)
+SAX.characters(
+, 1)
+SAX.startElement(body, bgcolor='White', link='Blue', text='Black', VLINK='Black', ALINK='Red')
+SAX.characters(
+
+, 2)
+SAX.startElement(center)
+SAX.characters(
+, 1)
+SAX.startElement(table, BORDER='0', WIDTH='100%', CELLSPACING='0', CELLPADDING='0')
+SAX.characters(
+        , 9)
+SAX.startElement(tr, BGCOLOR='#FFFFFF')
+SAX.characters(
+                , 17)
+SAX.startElement(td, HEIGHT='90')
+SAX.characters(
+, 1)
+SAX.startElement(a, href='http://linuxtoday.com/cgi-bin/click.pl?adnum=49')
+SAX.startElement(img, src='/pics/door_linux.gif', border='0', width='468', height='60', alt='Atipa Linux solutions. Your reliable cluster, server, and workstation solution. Win a Free Celeron Linux Workstation!')
+SAX.endElement(img)
+SAX.endElement(a)
+SAX.characters(
+
+                , 18)
+SAX.endElement(td)
+SAX.characters(
+    , 5)
+SAX.startElement(td)
+SAX.startElement(img, SRC='/pics/lt.gif', VSPACE='5', alt='Linux Today Logo')
+SAX.endElement(img)
+SAX.startElement(br)
+SAX.endElement(br)
+SAX.startElement(font, size='-1')
+SAX.startElement(a, href='http://linux.com')
+SAX.characters(linux.com, 9)
+SAX.endElement(a)
+SAX.characters( partner, 8)
+SAX.endElement(font)
+SAX.startElement(p)
+SAX.endElement(p)
+SAX.endElement(td)
+SAX.characters(
+
+        , 10)
+SAX.endElement(tr)
+SAX.characters(
+, 1)
+SAX.endElement(table)
+SAX.characters(
+, 1)
+SAX.startElement(font, size='2', face='Helvetica')
+SAX.characters(
+[ , 3)
+SAX.startElement(a, href='http://linuxtoday.com/')
+SAX.characters(headlines, 9)
+SAX.endElement(a)
+SAX.characters( |
+, 3)
+SAX.startElement(a, href='http://features.linuxtoday.com/')
+SAX.characters(features, 8)
+SAX.endElement(a)
+SAX.characters( |
+, 3)
+SAX.startElement(a, href='http://commercial.linuxtoday.com/')
+SAX.characters(commercial, 10)
+SAX.endElement(a)
+SAX.characters( |
+, 3)
+SAX.startElement(a, href='http://security.linuxtoday.com/')
+SAX.characters(security, 8)
+SAX.endElement(a)
+SAX.characters( |
+, 3)
+SAX.startElement(a, href='http://jobs.linuxtoday.com/')
+SAX.characters(jobs, 4)
+SAX.endElement(a)
+SAX.characters( |
+, 3)
+SAX.startElement(a, href='http://linuxtoday.com/volt/')
+SAX.characters(volt, 4)
+SAX.endElement(a)
+SAX.characters( | 
+, 4)
+SAX.startElement(a, href='http://linuxtoday.com/contrib.pl')
+SAX.characters(contribute/submit, 17)
+SAX.endElement(a)
+SAX.characters( |
+, 3)
+SAX.startElement(a, href='http://linuxtoday.com/advertise/')
+SAX.characters(advertise, 9)
+SAX.endElement(a)
+SAX.characters( |
+, 3)
+SAX.startElement(a, href='http://linuxtoday.com/search.html')
+SAX.characters(search, 6)
+SAX.endElement(a)
+SAX.characters( |
+, 3)
+SAX.startElement(a, href='http://linuxtoday.com/digests/')
+SAX.characters(site digests, 12)
+SAX.endElement(a)
+SAX.characters( |
+, 3)
+SAX.startElement(a, href='http://linuxtoday.com/mail-lists')
+SAX.characters(mailing lists, 13)
+SAX.endElement(a)
+SAX.characters( |
+, 3)
+SAX.startElement(a, href='http://linuxtoday.com/about/')
+SAX.characters(about us, 8)
+SAX.endElement(a)
+SAX.characters( |
+, 3)
+SAX.startElement(a, href='http://linuxtoday.com/linkus.html')
+SAX.characters(link us, 7)
+SAX.endElement(a)
+SAX.characters( ], 2)
+SAX.endElement(font)
+SAX.characters(
+, 1)
+SAX.endElement(center)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.characters(
+, 1)
+SAX.endElement(p)
+SAX.endElement(body)
+SAX.characters(
+, 1)
+SAX.endElement(html)
+SAX.ignorableWhitespace(
+, 1)
+SAX.endDocument()
diff --git a/result/HTML/test3.html.sax b/result/HTML/test3.html.sax
new file mode 100644
index 0000000..41ee432
--- /dev/null
+++ b/result/HTML/test3.html.sax
@@ -0,0 +1,230 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElement(html)
+SAX.characters(

+, 2)
+SAX.startElement(head)
+SAX.characters(

+, 2)
+SAX.startElement(base, target='contents')
+SAX.endElement(base)
+SAX.characters(

+, 2)
+SAX.endElement(head)
+SAX.characters(

+, 2)
+SAX.startElement(body)
+SAX.startElement(a, name='ProblemDomain.Package')
+SAX.startElement(h2)
+SAX.characters(Component Package diagram Prob, 39)
+SAX.endElement(h2)
+SAX.characters(

+, 2)
+SAX.endElement(a)
+SAX.startElement(p)
+SAX.endElement(p)
+SAX.startElement(hr)
+SAX.endElement(hr)
+SAX.error: Unexpected end tag : p
+SAX.characters(

+, 2)
+SAX.startElement(dl)
+SAX.characters(

+, 2)
+SAX.startElement(dt)
+SAX.startElement(b)
+SAX.characters(Stereotype , 11)
+SAX.endElement(b)
+SAX.characters(problem domain, 14)
+SAX.endElement(dt)
+SAX.characters(

+, 2)
+SAX.startElement(dt)
+SAX.startElement(b)
+SAX.characters(Alias , 6)
+SAX.endElement(b)
+SAX.characters(Problem Domain, 14)
+SAX.endElement(dt)
+SAX.characters(

+, 2)
+SAX.startElement(dt)
+SAX.startElement(b)
+SAX.characters(Note , 5)
+SAX.endElement(b)
+SAX.endElement(dt)
+SAX.startElement(dd)
+SAX.characters(The Problem Domain package is , 59)
+SAX.startElement(dd)
+SAX.characters(Interface, thats stores and ma, 58)
+SAX.endElement(dd)
+SAX.endElement(dd)
+SAX.endElement(dl)
+SAX.characters(

+, 2)
+SAX.startElement(p)
+SAX.endElement(p)
+SAX.startElement(hr)
+SAX.endElement(hr)
+SAX.error: Unexpected end tag : p
+SAX.characters(

+, 2)
+SAX.startElement(dl)
+SAX.characters(

+

+, 4)
+SAX.startElement(dt)
+SAX.startElement(h4)
+SAX.characters(Class , 6)
+SAX.startElement(a, href='HumanInterface.FamilyFrame.html#HumanInterface.FamilyFrame')
+SAX.characters(HumanInterface.FamilyFrame, 26)
+SAX.endElement(a)
+SAX.endElement(h4)
+SAX.endElement(dt)
+SAX.characters(

+, 2)
+SAX.startElement(dt)
+SAX.startElement(h4)
+SAX.characters(Class , 6)
+SAX.startElement(a, href='ProblemDomain.Birth.html#ProblemDomain.Birth')
+SAX.characters(ProblemDomain.Birth, 19)
+SAX.endElement(a)
+SAX.endElement(h4)
+SAX.endElement(dt)
+SAX.characters(

+, 2)
+SAX.startElement(dt)
+SAX.startElement(h4)
+SAX.characters(Class , 6)
+SAX.startElement(a, href='ProblemDomain.Death.html#ProblemDomain.Death')
+SAX.characters(ProblemDomain.Death, 19)
+SAX.endElement(a)
+SAX.endElement(h4)
+SAX.endElement(dt)
+SAX.characters(

+, 2)
+SAX.startElement(dt)
+SAX.startElement(h4)
+SAX.characters(Class , 6)
+SAX.startElement(a, href='ProblemDomain.Divorce.html#ProblemDomain.Divorce')
+SAX.characters(ProblemDomain.Divorce, 21)
+SAX.endElement(a)
+SAX.endElement(h4)
+SAX.endElement(dt)
+SAX.characters(

+, 2)
+SAX.startElement(dt)
+SAX.startElement(h4)
+SAX.characters(Class , 6)
+SAX.startElement(a, href='ProblemDomain.Family.html#ProblemDomain.Family')
+SAX.characters(ProblemDomain.Family, 20)
+SAX.endElement(a)
+SAX.endElement(h4)
+SAX.endElement(dt)
+SAX.characters(

+, 2)
+SAX.startElement(dt)
+SAX.startElement(h4)
+SAX.characters(Class , 6)
+SAX.startElement(a, href='ProblemDomain.Individual.html#ProblemDomain.Individual')
+SAX.characters(ProblemDomain.Individual, 24)
+SAX.endElement(a)
+SAX.endElement(h4)
+SAX.endElement(dt)
+SAX.characters(

+, 2)
+SAX.startElement(dt)
+SAX.startElement(h4)
+SAX.characters(Class , 6)
+SAX.startElement(a, href='ProblemDomain.LifeEvent.html#ProblemDomain.LifeEvent')
+SAX.characters(ProblemDomain.LifeEvent, 23)
+SAX.endElement(a)
+SAX.endElement(h4)
+SAX.endElement(dt)
+SAX.characters(

+, 2)
+SAX.startElement(dt)
+SAX.startElement(h4)
+SAX.characters(Class , 6)
+SAX.startElement(a, href='ProblemDomain.Marriage.html#ProblemDomain.Marriage')
+SAX.characters(ProblemDomain.Marriage, 22)
+SAX.endElement(a)
+SAX.endElement(h4)
+SAX.endElement(dt)
+SAX.characters(

+, 2)
+SAX.startElement(dt)
+SAX.startElement(h4)
+SAX.characters(Class , 6)
+SAX.startElement(a, href='ProblemDomain.Note.html#ProblemDomain.Note')
+SAX.characters(ProblemDomain.Note, 18)
+SAX.endElement(a)
+SAX.endElement(h4)
+SAX.endElement(dt)
+SAX.characters(

+, 2)
+SAX.endElement(dl)
+SAX.characters(

+

+, 4)
+SAX.startElement(h4)
+SAX.startElement(b)
+SAX.characters(Links, 5)
+SAX.error: Opening and ending tag mismatch: h4 and b
+SAX.endElement(b)
+SAX.endElement(h4)
+SAX.error: Unexpected end tag : b
+SAX.characters(

+, 2)
+SAX.startElement(ul)
+SAX.startElement(li)
+SAX.startElement(b)
+SAX.characters(Link to , 8)
+SAX.endElement(b)
+SAX.startElement(a, href='HumanInterface.Package.html#HumanInterface.Package')
+SAX.characters(HumanInterface, 14)
+SAX.endElement(a)
+SAX.endElement(li)
+SAX.endElement(ul)
+SAX.characters(

+, 2)
+SAX.startElement(dir)
+SAX.endElement(dir)
+SAX.characters(

+, 2)
+SAX.startElement(ul)
+SAX.startElement(li)
+SAX.startElement(b)
+SAX.characters(Link to , 8)
+SAX.endElement(b)
+SAX.startElement(a, href='DataManagement.FlatFile.Package.html#DataManagement.FlatFile.Package')
+SAX.characters(DataManagement.FlatFile, 23)
+SAX.endElement(a)
+SAX.endElement(li)
+SAX.endElement(ul)
+SAX.characters(

+, 2)
+SAX.startElement(dir)
+SAX.endElement(dir)
+SAX.characters(

+, 2)
+SAX.startElement(ul)
+SAX.startElement(li)
+SAX.startElement(b)
+SAX.characters(Link to , 8)
+SAX.endElement(b)
+SAX.startElement(a, href='DataManagement.Package.html#DataManagement.Package')
+SAX.characters(DataManagement, 14)
+SAX.endElement(a)
+SAX.endElement(li)
+SAX.endElement(ul)
+SAX.characters(

+, 2)
+SAX.startElement(dir)
+SAX.endElement(dir)
+SAX.characters(

+, 2)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.ignorableWhitespace(

+, 2)
+SAX.endDocument()
diff --git a/result/HTML/wired.html.err b/result/HTML/wired.html.err
index 357dc0a..e9e588d 100644
--- a/result/HTML/wired.html.err
+++ b/result/HTML/wired.html.err
@@ -181,75 +181,75 @@
 ./test/HTML/wired.html:97: error: htmlParseEntityRef: expecting ';'
 lue="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&OPs=MDRTP&M
                                                                                 ^
-./test/HTML/wired.html:159: error: Opening and ending tag mismatch: td and form
+./test/HTML/wired.html:165: error: Opening and ending tag mismatch: td and form
 </td> 
      ^
-./test/HTML/wired.html:164: error: Unexpected end tag : form
+./test/HTML/wired.html:170: error: Unexpected end tag : form
 	</tr>    </form>
                 ^
-./test/HTML/wired.html:238: error: Opening and ending tag mismatch: td and form
+./test/HTML/wired.html:244: error: Opening and ending tag mismatch: td and form
  </select></font></td></tr>
                       ^
-./test/HTML/wired.html:242: error: htmlParseEntityRef: expecting ';'
+./test/HTML/wired.html:248: error: htmlParseEntityRef: expecting ';'
 MG SRC="http://barnesandnoble.bfast.com/booklink/serve?sourceid=383471&is_searc
                                                                                 ^
-./test/HTML/wired.html:257: error: Unexpected end tag : form
+./test/HTML/wired.html:265: error: Unexpected end tag : form
         </tr>  </form>
                      ^
-./test/HTML/wired.html:338: error: Opening and ending tag mismatch: td and font
+./test/HTML/wired.html:346: error: Opening and ending tag mismatch: td and font
 </td>
     ^
-./test/HTML/wired.html:366: error: htmlParseEntityRef: no name
+./test/HTML/wired.html:374: error: htmlParseEntityRef: no name
 a, sans-serif"><b><a href="/news/commentarySection/0,1292,31926,00.html">Rants 
                                                                                 ^
-./test/HTML/wired.html:366: error: Opening and ending tag mismatch: td and font
+./test/HTML/wired.html:374: error: Opening and ending tag mismatch: td and font
 Readers on Apple's G4 ... AOL's passwords ... MS vs. Linux.</font><br><br>  </t
                                                                                 ^
-./test/HTML/wired.html:366: error: Opening and ending tag mismatch: td and font
+./test/HTML/wired.html:374: error: Opening and ending tag mismatch: td and font
 Readers on Apple's G4 ... AOL's passwords ... MS vs. Linux.</font><br><br>  </t
                                                                                 ^
-./test/HTML/wired.html:394: error: Opening and ending tag mismatch: a and font
+./test/HTML/wired.html:402: error: Opening and ending tag mismatch: a and font
 w.vignette.com/" style="text-decoration:none"><font color="#000000">Vignette</a
                                                                                 ^
-./test/HTML/wired.html:398: error: htmlParseEntityRef: expecting ';'
+./test/HTML/wired.html:406: error: htmlParseEntityRef: expecting ';'
 ervlet/appservlet?from=/wired/sprint/&template=/security/security.html&SITE=
                                               ^
-./test/HTML/wired.html:398: error: htmlParseEntityRef: expecting ';'
+./test/HTML/wired.html:406: error: htmlParseEntityRef: expecting ';'
 ervlet/appservlet?from=/wired/sprint/&template=/security/security.html&SITE=
                                                                            ^
-./test/HTML/wired.html:398: error: htmlParseEntityRef: expecting ';'
+./test/HTML/wired.html:406: error: htmlParseEntityRef: expecting ';'
 wired.com&BANNER=Sprint" style="text-decoration:none"><font color="#000000">Spr
                 ^
-./test/HTML/wired.html:398: error: Opening and ending tag mismatch: a and font
+./test/HTML/wired.html:406: error: Opening and ending tag mismatch: a and font
 com&BANNER=Sprint" style="text-decoration:none"><font color="#000000">Sprint</a
                                                                                 ^
-./test/HTML/wired.html:398: error: End tag : expected '>'
+./test/HTML/wired.html:406: error: End tag : expected '>'
 =Sprint" style="text-decoration:none"><font color="#000000">Sprint</a></i></fon
                                                                                 ^
-./test/HTML/wired.html:404: error: Opening and ending tag mismatch: td and font
+./test/HTML/wired.html:412: error: Opening and ending tag mismatch: td and font
 </td>
     ^
-./test/HTML/wired.html:404: error: Opening and ending tag mismatch: td and font
+./test/HTML/wired.html:412: error: Opening and ending tag mismatch: td and font
 </td>
     ^
-./test/HTML/wired.html:404: error: Opening and ending tag mismatch: td and font
+./test/HTML/wired.html:412: error: Opening and ending tag mismatch: td and font
 </td>
     ^
-./test/HTML/wired.html:404: error: Opening and ending tag mismatch: td and font
+./test/HTML/wired.html:412: error: Opening and ending tag mismatch: td and font
 </td>
     ^
-./test/HTML/wired.html:404: error: Opening and ending tag mismatch: td and font
+./test/HTML/wired.html:412: error: Opening and ending tag mismatch: td and font
 </td>
     ^
-./test/HTML/wired.html:404: error: Opening and ending tag mismatch: td and font
+./test/HTML/wired.html:412: error: Opening and ending tag mismatch: td and font
 </td>
     ^
-./test/HTML/wired.html:404: error: Opening and ending tag mismatch: td and font
+./test/HTML/wired.html:412: error: Opening and ending tag mismatch: td and font
 </td>
     ^
-./test/HTML/wired.html:404: error: Opening and ending tag mismatch: td and font
+./test/HTML/wired.html:412: error: Opening and ending tag mismatch: td and font
 </td>
     ^
-./test/HTML/wired.html:422: error: htmlParseEntityRef: expecting ';'
+./test/HTML/wired.html:430: error: htmlParseEntityRef: expecting ';'
 href="http://www.lycos.com/news/flash/hitlerbunker.html?v=wn1015&lpv=1">Lycos</
                                                                     ^
diff --git a/result/HTML/wired.html.sax b/result/HTML/wired.html.sax
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/HTML/wired.html.sax
diff --git a/test/HTML/doc2.htm b/test/HTML/doc2.htm
new file mode 100644
index 0000000..ff6f285
--- /dev/null
+++ b/test/HTML/doc2.htm
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!-- saved from url=(0016)http://intranet/ -->
+<!-- BEGIN Naviscope Javascript --><HTML><HEAD><TITLE>Welcome to Copernic.com</TITLE>
+<SCRIPT language=javascript>
+          NS_ActualOpen=window.open;
+          function NS_NullWindow(){this.window;}
+          function NS_NewOpen(url,nam,atr){return(new NS_NullWindow());}
+          window.open=NS_NewOpen;
+</SCRIPT>
+<!-- END Naviscope Javascript --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0027)http://www.agents-tech.com/ -->
+<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
+<META 
+content="Copernic.com Inc. develops innovative agent technology solutions to efficiently access and manage the overwhelming quantity of information available on the Internet and intranets." 
+name=DESCRIPTION>
+<META 
+content=agent,technology,intranet,extranet,management,filtering,ranking,solution,service,intelligent,intelligence,client,server,architecture,developer,development,information,telecommunication,announcement,press,product,profile,contact,multi-agent,meta-search,metasearch,multi-thread,mobile,wireless,shopping,robot,PCS,Copernic,engine,toolkit,CDK,EDK 
+name=KEYWORDS>
+<META content="MSHTML 5.00.3103.1000" name=GENERATOR></HEAD><FRAMESET 
+border=false cols=172,* frameBorder=0 frameSpacing=0><FRAME marginHeight=0 
+marginWidth=0 name=left noResize scrolling=no src="doc2_files/side.htm" 
+target="rtop"><FRAMESET rows=43,*><FRAME marginHeight=0 marginWidth=0 name=rtop 
+noResize scrolling=no src="doc2_files/top.htm" target="rbottom"><FRAME 
+name=rbottom noResize src="doc2_files/contents.htm" 
+target="_top"></FRAMESET><NOFRAMES>
+
+  <body bgcolor="#FFFFFF" text="#000000" link="#000080" vlink="#000080" alink="#000080"
+  topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
+  <p>This page uses frames, but your browser doesn't support them.</p>
+  </body>
+  </NOFRAMES></FRAMESET></HTML>
diff --git a/test/HTML/doc3.htm b/test/HTML/doc3.htm
new file mode 100644
index 0000000..ba28998
--- /dev/null
+++ b/test/HTML/doc3.htm
@@ -0,0 +1,851 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

+<!-- saved from url=(0025)http://bp6.gamesquad.net/ -->

+<!-- BEGIN Naviscope Javascript --><HTML><HEAD><TITLE>BP6.com #1 online resource for the BP6 Mobo....</TITLE>

+<SCRIPT language=javascript>

+          NS_ActualOpen=window.open;

+          function NS_NullWindow(){this.window;}

+          function NS_NewOpen(url,nam,atr){return(new NS_NullWindow());}

+          window.open=NS_NewOpen;

+</SCRIPT>

+<!-- END Naviscope Javascript --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><!--last modified on Tuesday, February 22, 2000 11:47 PM -->

+<META content=text/html;CHARSET=iso-8859-1 http-equiv=Content-Type>

+<META content=Tim name=Author>

+<STYLE type=text/css>A.nav {

+	COLOR: #003399; TEXT-DECORATION: none

+}

+A.nav:hover {

+	COLOR: #3366cc; TEXT-DECORATION: underline

+}

+</STYLE>

+

+<SCRIPT language=JavaScript>
+<!-- Idea by:  Nic Wolfe (Nic@TimelapseProductions.com) -->
+<!-- Web URL:  http://fineline.xs.mw -->
+
+<!-- This script and many more are available free online at -->
+<!-- The JavaScript Source!! http://javascript.internet.com -->
+
+<!-- Begin
+function popUp(URL) {
+day = new Date();
+id = day.getTime();
+eval("page" + id + " = window.open(URL, '" + id + "', 'toolbars=0, scrollbars=0, location=0, statusbars=0, menubars=0, resizable=0, width=145, height=250');");
+}
+// End -->
+</SCRIPT>

+

+<META content="MSHTML 5.00.3103.1000" name=GENERATOR></HEAD>

+<BODY aLink=red bgColor=black link=red text=white vLink=red>

+<P>

+<DIV align=center>

+<TABLE border=0 cellPadding=0 cellSpacing=0 width="80%">

+  <TBODY>

+  <TR>

+    <TD vAlign=top width=31><A href="http://bp6.gamesquad.net/"><IMG 

+      align=bottom border=0 height=74 src="doc3_files/logo.gif" 

+width=252></A></TD>

+    <TD align=left bgColor=#000000><IMG height=15 src="doc3_files/spacer.gif" 

+      width=15><!-- START GAMESQUAD.NET IFRAME RICH MEDIA CODE --> <!-- © 2000 GameSquad.net All Rights Reserved. --><IFRAME border=0 

+      frameBorder=no height=60 marginHeight=0 marginWidth=0 scrolling=no 

+      src="doc3_files/adcycle.htm" 

+      width=468>
+<a href="http://ads.gamesquad.net/addclick.exe/adclick.cgi?REGION=game|tech|ent&id=1" target="_top"><img src="http://ads.gamesquad.net/addclick.exe/adcycle.cgi?group=52&media=1&id=1" width=468 height=60 border=0 ALT="GSN ROS Ad"></a>
+</IFRAME><!-- END GAMESQUAD.NET IFRAME RICH MEDIA CODE --><BR><IMG 

+      height=15 src="doc3_files/spacer.gif" width=400> </TD></TR>

+  <TR>

+    <TD bgColor=#003399 colSpan=2>

+      <P align=right><IMG align=right border=0 height=18 hspace=0 

+      src="doc3_files/trcorner.gif" width=20><IMG align=left border=0 height=18 

+      hspace=0 src="doc3_files/tlcorner.gif" width=20><FONT face=Verdana 

+      size=2>Monday, July 31st, 2000</FONT> </P></TD></TR>

+  <TR>

+    <TD colSpan=2>

+      <TABLE bgColor=#003399 border=0 cellPadding=0 cellSpacing=4 

+        width="100%"><TBODY>

+        <TR>

+          <TD bgColor=#666666 width="100%">

+            <CENTER>

+            <P>

+            <TABLE bgColor=black border=0 cellPadding=0 cellSpacing=1 

+            width="100%">

+              <TBODY>

+              <TR>

+                <TD background=doc3_files/hscan.gif bgColor=#666666 

+                  width="100%"><IMG height=1 src="doc3_files/spacer.gif" 

+                  width=738><BR>

+                  <CENTER>

+                  <TABLE border=0 cellPadding=2 cellSpacing=0 width="91%">

+                    <TBODY>

+                    <TR>

+                      <TD vAlign=top width="15%">

+                        <P align=center><A 

+                        href="http://bp6.gamesquad.net/specs.phtml"><IMG 

+                        align=bottom 

+                        alt="Abit BP6 Motherboard specification and information." 

+                        border=0 height=45 src="doc3_files/bp6icon.gif" 

+                        width=70></A><FONT face=Verdana size=1><BR></FONT><A 

+                        href="http://bp6.gamesquad.net/specs.phtml"><FONT 

+                        color=white face=Verdana size=1>BP6 Specs</FONT></A> 

+                      </P></TD>

+                      <TD vAlign=top width="15%">

+                        <P align=center><A 

+                        href="http://bp6.gamesquad.net/bxcool.phtml"><IMG 

+                        align=bottom 

+                        alt="How to cool the BX Chipset on your BP6." border=0 

+                        height=45 src="doc3_files/bxcool.gif" width=70></A><FONT 

+                        face=Verdana size=1><BR></FONT><A 

+                        href="http://bp6.gamesquad.net/uc.phtml"><FONT 

+                        color=white face=Verdana size=1>BX Cooling</FONT></A> 

+                        </P></TD>

+                      <TD vAlign=top width="15%">

+                        <P align=center><A 

+                        href="http://bp6.gamesquad.net/contest.phtml"><IMG 

+                        align=bottom 

+                        alt="The U;timate Gaming Contest - Coming Soon!" 

+                        border=0 height=45 src="doc3_files/ugmcontest.gif" 

+                        width=70></A><FONT face=Verdana size=1><BR></FONT><A 

+                        href="http://bp6.gamesquad.net/contest.phtml"><FONT 

+                        color=white face=Verdana size=1>UGM Contest</FONT></A> 

+                        </P></TD>

+                      <TD vAlign=top width="15%">

+                        <P align=center><A 

+                        href="http://bp6.gamesquad.net/uc.phtml"><IMG 

+                        align=bottom 

+                        alt="Cooling &amp; Heatsink review for the BP6." 

+                        border=0 height=45 src="doc3_files/alpha.gif" 

+                        width=70></A><FONT face=Verdana size=1><BR></FONT><A 

+                        href="http://bp6.gamesquad.net/uc.phtml"><FONT 

+                        color=white face=Verdana size=1>Heatsinks</FONT></A> 

+                      </P></TD>

+                      <TD vAlign=top width="15%">

+                        <P align=center><A 

+                        href="http://bp6.gamesquad.net/101.phtml"><IMG 

+                        align=bottom 

+                        alt="BP6 101 - Class is now in session. Welcome newbies!" 

+                        border=0 height=45 src="doc3_files/bp6101.gif" 

+                        width=70></A><FONT face=Verdana size=1><BR></FONT><A 

+                        href="http://bp6.gamesquad.net/101.phtml"><FONT 

+                        color=white face=Verdana size=1>BP6 101</FONT></A> 

+                      </P></TD>

+                      <TD vAlign=top width="15%">

+                        <P align=center><A 

+                        href="http://bp6.gamesquad.net/win2k_install.phtml"><IMG 

+                        align=bottom 

+                        alt="Install guide for installing Windows 2000 on the BP6 " 

+                        border=0 height=45 src="doc3_files/win2kht.gif" 

+                        width=70></A><FONT face=Verdana size=1><BR></FONT><A 

+                        href="http://bp6.gamesquad.net/win2k_install.phtml"><FONT 

+                        color=white face=Verdana size=1>Win2k Install</FONT></A> 

+                        </P></TD>

+                      <TD vAlign=top width="15%">

+                        <P align=center><A href="http://www.gentus.com/"><IMG 

+                        align=bottom 

+                        alt="Taking a first look at the Abit Linux release called " 

+                        border=0 height=45 src="doc3_files/gentusbox.gif" 

+                        width=70 Gentus?.?></A><BR><A 

+                        href="http://www.gentus.com/"><FONT color=white 

+                        face=Verdana size=1>Gentus</FONT></A> 

+                  </P></TD></TR></TBODY></TABLE></CENTER></TD></TR></TBODY></TABLE></CENTER></P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>

+<TABLE bgColor=#003399 border=0 cellSpacing=6 width="80%">

+  <TBODY>

+  <TR>

+    <TD bgColor=black vAlign=top width="10%">

+      <TABLE border=0 cellPadding=3 cellSpacing=0 width="100%">

+        <TBODY>

+        <TR>

+          <TD width="100%"><IMG height=1 src="doc3_files/spacer.gif" 

+            width=111><BR><B><FONT color=yellow face=Verdana 

+            size=2>REVIEWS</FONT></B><FONT face=Verdana size=2><BR>

+            <HR align=center>

+            </FONT><A href="http://bp6.gamesquad.net/bp6reviews.phtml"><FONT 

+            color=white face=Verdana size=1>BP6 Reviews</FONT></A><FONT 

+            face=Verdana size=1><BR></FONT><A 

+            href="http://bp6.gamesquad.net/h2o.phtml"><FONT color=white 

+            face=Verdana size=1>BP6 Watercooling</FONT></A><FONT face=Verdana 

+            size=1><BR></FONT><A 

+            href="http://bp6.gamesquad.net/bxcool.phtml"><FONT color=white 

+            face=Verdana size=1>BX Chipset Cooling</FONT></A><FONT face=Verdana 

+            size=1><BR></FONT><A 

+            href="http://bp6.gamesquad.net/benchmark.phtml"><FONT color=white 

+            face=Verdana size=1>Benchmarks</FONT></A><FONT face=Verdana 

+            size=1><BR></FONT><A 

+            href="http://bp6.gamesquad.net/bp6fsb.phtml"><FONT color=white 

+            face=Verdana size=1>BP6FSB Utility</FONT></A><FONT face=Verdana 

+            size=1><BR></FONT><A 

+            href="http://bp6.gamesquad.net/powerleap.phtml"><FONT color=white 

+            face=Verdana size=1>PowerLeap NEO S370</FONT></A><FONT face=Verdana 

+            size=1><BR></FONT><A 

+            href="http://bp6.gamesquad.net/seti.phtml"><FONT color=white 

+            face=Verdana size=1>SETI on the BP6</FONT></A><FONT face=Verdana 

+            size=1><BR></FONT><A 

+            href="http://bp6.gamesquad.net/orbs.phtml"><FONT color=white 

+            face=Verdana size=1>Golden Orbs I</FONT></A><FONT face=Verdana 

+            size=1><BR></FONT><A 

+            href="http://bp6.gamesquad.net/orbs/orbs2.phtml"><FONT color=white 

+            face=Verdana size=1>Golden Orbs II</FONT></A><FONT face=Verdana 

+            size=1><BR></FONT><A 

+            href="http://bp6.gamesquad.net/Q6fix.phtml"><FONT color=white 

+            face=Verdana size=1>VTT Solution</FONT></A><FONT face=Verdana 

+            size=1><BR><BR></FONT><B><FONT color=yellow face=Verdana 

+            size=2>NAVIGATE</FONT></B><FONT color=yellow face=Verdana size=2> 

+            <HR align=center>

+            </FONT><A href="http://www.bp6.com/"><FONT color=white face=Verdana 

+            size=1>News</FONT></A><FONT face=Verdana size=1><BR></FONT><A 

+            href="http://bp6.gamesquad.net/chat.phtml"><FONT color=white 

+            face=Verdana size=1>Online Text Chat</FONT></A><FONT face=Verdana 

+            size=1><BR></FONT><A href="javascript:popUp('chat_popup.htm')"><FONT 

+            color=white face=Verdana size=1>Voice Chat</FONT></A><BR><A 

+            href="http://216.247.220.192/Forum"><FONT color=white face=Verdana 

+            size=1>Messageboard</FONT></A><FONT face=Verdana 

+            size=1><BR></FONT><A href="http://bp6.gamesquad.net/cooling"><FONT 

+            color=white face=Verdana size=1>Temp. Converter</FONT></A><FONT 

+            face=Verdana size=1><BR></FONT><A 

+            href="http://bp6.gamesquad.net/uc.phtml"><FONT color=white 

+            face=Verdana size=1>Picture Gallery</FONT></A><FONT face=Verdana 

+            size=1><BR></FONT><A 

+            href="http://bp6.gamesquad.net/bios.phtml"><FONT color=white 

+            face=Verdana size=1>Latest BIOS</FONT></A><FONT face=Verdana 

+            size=1><BR></FONT><A href="http://bp6.gamesquad.net/files/"><FONT 

+            color=white face=Verdana size=1>Drivers &amp; Files</FONT></A><FONT 

+            face=Verdana size=1><BR></FONT><A 

+            href="http://bp6.gamesquad.net/uc.phtml"><FONT color=white 

+            face=Verdana size=1>UGM of the week</FONT></A><FONT face=Verdana 

+            size=1><BR></FONT><A 

+            href="http://bp6.gamesquad.net/contest.phtml"><FONT color=white 

+            face=Verdana size=1>BP6 Contest</FONT></A><FONT face=Verdana 

+            size=1><BR><BR></FONT><B><FONT color=yellow face=Verdana 

+            size=2>OTHER STUFF</FONT></B><FONT color=yellow face=Verdana size=2> 

+

+            <HR align=center>

+            </FONT><A href="http://bp6.gamesquad.net/whois.phtml"><FONT 

+            color=white face=Verdana size=1>Who is Tim?</FONT></A><FONT 

+            face=Verdana size=1><BR></FONT><A href="mailto:tim@bp6.com"><FONT 

+            color=white face=Verdana size=1>Contact BP6.com</FONT></A><FONT 

+            face=Verdana size=1><BR></FONT><A 

+            href="http://bp6.gamesquad.net/uc.phtml"><FONT color=white 

+            face=Verdana size=1>Affiliates Section</FONT></A><FONT face=Verdana 

+            size=1><BR></FONT><A href="http://bp6.gamesquad.net/uc.phtml"><FONT 

+            color=white face=Verdana size=1>Sponsors Section <BR></FONT><A 

+            href="http://bp6.gamesquad.net/links.phtml"><FONT color=white 

+            face=Verdana size=1>Links<BR><BR></FONT></A><B><FONT color=yellow 

+            face=Verdana size=2>PC SPECIALS</FONT></B><FONT color=yellow 

+            face=Verdana size=2> 

+            <HR align=center>

+            </FONT><A href="http://bp6.gamesquad.net/specials.phtml"><FONT 

+            color=white face=Verdana size=1>Vendor 

+            Specials<BR><BR></FONT></A><BR></FONT></A><B><FONT color=yellow 

+            face=Verdana size=2>Pic of the day</FONT></B>

+            <HR>

+             

+            <CENTER>

+            <P align=center><FONT face="Verdana, Arial, Helvetica" size=1><A 

+            href="http://bp6.gamesquad.net/cgi-bin/schlabo/potd.pl"><IMG 

+            alt="No picture is available for today." border=0 

+            src="doc3_files/potd_na_110x83.gif"></A> </FONT></P></CENTER><BR>

+            <CENTER></CENTER><BR><!--<A HREF="code:javascript:ID_FTPWebView.InvokeHelp()"><FONT SIZE="1" COLOR="white" FACE="Verdana">FTP Help</FONT></A>--></TD></TR></TBODY></TABLE></TD>

+    <TD bgColor=white vAlign=top width="80%"><IMG height=1 

+      src="doc3_files/spacer.gif" width=490><BR>

+      <CENTER>

+      <P>

+      <TABLE bgColor=white border=0 cellPadding=10 cellSpacing=0 height="100%" 

+      width="100%">

+        <TBODY>

+        <TR>

+          <TD bgColor=white vAlign=top width="100%">

+            <CENTER><A href="http://www.encounter2001.com/" target=_blank><IMG 

+            border=0 height=60 src="doc3_files/banner2.gif" width=468></A> 

+            </CENTER><BR><A name=news_top></A><FONT color=#003366 

+            face=verdana,arial size=2><B>Headlines</B></FONT><BR><FONT 

+            face=arial size=1><A class=nav 

+            href="http://bp6.gamesquad.net/index.phtml#newsitem965012956,78924,">Chat 

+            with ABIT - 8:09PM PDT</A></FONT><BR><FONT face=arial size=1><A 

+            class=nav 

+            href="http://bp6.gamesquad.net/index.phtml#newsitem964766837,26344,">Fixed 

+            wallpaper - 11:47PM PDT</A></FONT><BR><FONT face=arial size=1><A 

+            class=nav 

+            href="http://bp6.gamesquad.net/index.phtml#newsitem964762841,25865,">Seti 

+            update - 10:40PM PDT</A></FONT><BR><FONT face=arial size=1><A 

+            class=nav 

+            href="http://bp6.gamesquad.net/index.phtml#newsitem964732235,45502,">Judge 

+            gives Napster the Boot!! - 2:10PM PDT</A></FONT><BR><FONT face=arial 

+            size=1><A class=nav 

+            href="http://bp6.gamesquad.net/index.phtml#newsitem964713289,83675,">Ram 

+            Sinks.. more cooling for small places. - 8:54AM 

+            PDT</A></FONT><BR><FONT face=arial size=1><A class=nav 

+            href="http://bp6.gamesquad.net/index.phtml#newsitem964671589,7831,">is 

+            it [H]ard? - 9:19PM PDT</A></FONT><BR><FONT face=arial size=1><A 

+            class=nav 

+            href="http://bp6.gamesquad.net/index.phtml#newsitem964644047,60218,">WiLd 

+            CaSe!! - 1:40PM PDT</A></FONT><BR><FONT face=arial size=1><A 

+            class=nav 

+            href="http://bp6.gamesquad.net/index.phtml#newsitem964631110,84122,">What 

+            the heck is a Peltier?!?! - 10:05AM PDT</A></FONT><BR><FONT 

+            face=arial size=1><A class=nav 

+            href="http://bp6.gamesquad.net/index.phtml#newsitem964587833,74573,">HELLO 

+            EVERYONE!!! - 10:03PM PDT</A></FONT><BR><FONT face=arial size=1><A 

+            class=nav 

+            href="http://bp6.gamesquad.net/index.phtml#newsitem964429577,13375,">BP6 

+            Q3 server up and running.. - 2:06AM PDT</A></FONT><BR><BR><!-- NP v3.7.5 --><A 

+            name=newsitem965012956,78924,></A>

+            <TABLE bgColor=#003399 width="100%">

+              <TBODY>

+              <TR>

+                <TD><FONT color=#ffffff face=Verdana,arial size=2><B>Sunday, 

+                  July 30, 2000</B></FONT></TD></TR></TBODY></TABLE><BR><!--<hr noshade width=100%>--><B><U><FONT 

+            color=#003366 face="Verdana, Arial" size=2>Chat with 

+            ABIT</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:Holodeck@bp6.com">Holodeck2</A> @ 8:09PM 

+            PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/965012956,78924,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">0 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>I&#8217;m slacking a little. All game no 

+            work makes Holodeck2 a happy boy :-)<BR><BR>Wallpaper update: I got 

+            off my lazy ass and redid the 1280x1024 wall paper, now it has the 2 

+            celerons.<BR><BR><B><A href="http://fullon3d.com/chat/abit/" 

+            target=3d>Fullon3d had a live chat with that Eric guy from Abit. 

+            </A></B>Submitted by: MJS<BR><BR>Here&#8217;s a little clip:<BR>[Falcon] 

+            BP6-2??<BR>[EricBoeing] We already have a micro ATX dual flip-chip 

+            board<BR>[EricBoeing] but it's OEM only<BR>[EricBoeing] the full ATX 

+            version should be out Septemberish<BR></FONT><BR><BR><A 

+            name=newsitem964766837,26344,></A>

+            <TABLE bgColor=#003399 width="100%">

+              <TBODY>

+              <TR>

+                <TD><FONT color=#ffffff face=Verdana,arial size=2><B>Thursday, 

+                  July 27, 2000</B></FONT></TD></TR></TBODY></TABLE><BR><!--<hr noshade width=100%>--><B><U><FONT 

+            color=#003366 face="Verdana, Arial" size=2>Fixed 

+            wallpaper</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:Holodeck@bp6.com">Holodeck2</A> @ 11:47PM 

+            PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/964766837,26344,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">5 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2><B>Get them now!!</B><BR>This is a 

+            fixed bp6 wallpaper. In all the popular flavors, err... 

+            resolutions.<BR><IMG height=180 src="doc3_files/3-800.jpg" 

+            width=240><BR>It's still the Intels Inside one with a spelling 

+            change; from "Mothboard" to "Motherboard"<BR><BR>Thanks to Matt for 

+            pointing that out to me.<BR>I would also like to thank Kevin for 

+            hosting my last batch and Radu for the previous "DUEL"/"DUAL" 

+            error.<BR>And 1 more person, THANK YOU TIM for letting me borrow 

+            your server space ;-)<BR><BR>If you need a weird resolution, feel 

+            free to <A href="mailto:Holodeck2@home.com">e-mail</A> me requesting 

+            for one.<BR>If you have ideas or more errors to point out, <A 

+            href="mailto:Holodeck2@home.com">mailto:Holodeck2@home.com</A><BR><BR><A 

+            href="doc3_files/3-800.jpg" target=800>800x600 </A><BR><A 

+            href="http://www.bp6.com/pics/holodeck2/wallpaper/3-1024.jpg" 

+            target=800>1024x768 </A><BR><A 

+            href="http://www.bp6.com/pics/holodeck2/wallpaper/3-1152.jpg" 

+            target=800>1152x864 </A><BR><A 

+            href="http://www.bp6.com/pics/holodeck2/wallpaper/3-1280x1024.jpg" 

+            target=800>1280x1024 </A><BR><A 

+            href="http://www.bp6.com/pics/holodeck2/wallpaper/3-1600.jpg" 

+            target=800>1600x1200 </A><BR>

+            <P>Enjoy :-)<BR>

+            <P><A href="mailto:Holodeck2@home.com">Holodeck2,</A><BR>[H]ard at 

+            work on the Brand Spanking New Wallpaper.<BR></FONT><BR><BR><A 

+            name=newsitem964762841,25865,></A><B><U><FONT color=#003366 

+            face="Verdana, Arial" size=2>Seti update</FONT></U></B><BR><FONT 

+            color=#0066cc face=Arial size=1><SMALL>Posted by <A class=nav 

+            href="mailto:Holodeck@bp6.com">Holodeck2</A> @ 10:40PM 

+            PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/964762841,25865,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">5 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2><IMG height=54 

+            src="doc3_files/setiupdate.jpg" width=400><BR>You like the 

+            pic?<BR><BR>Bp6 User Group Update:<BR>Completed 61531 

+            units!!<BR><B>#168 on Top 200 All Groups</B> (Going to pass CLRC in 

+            a few days)<BR><B>#74 on Top 200 Teams</B> (Gaining fast on 

+            Starfleet)<BR><BR>We are flying though at the speed of light (may be 

+            a little slower).<BR>Good job everyone!!<BR><BR>Check this page at 

+            least once a day for new stuff :-)<BR></FONT><BR><BR><A 

+            name=newsitem964732235,45502,></A><B><U><FONT color=#003366 

+            face="Verdana, Arial" size=2>Judge gives Napster the 

+            Boot!!</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:Holodeck@bp6.com">Holodeck2</A> @ 2:10PM 

+            PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/964732235,45502,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">0 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>Good afternoon for everyone living in 

+            EST. I was going to post today morning but I didn't. Here's my 

+            story:<BR>I woke up and thought about posting something but I 

+            decided to wax my car before the sun came up (draw your own 

+            conclusions), wax on, wax off, wax on,..., did that for about an 

+            hour. Then I saw the sun rise (Aaahh I'm melting... not). I sat in 

+            front of my comp and started to search for good news to post. Saw 

+            that a stoopid judge temporally shuts down napster. Goes to room and 

+            cry. and now I'm here :-)<BR><BR><A 

+            href="http://www.msnbc.com/news/437532.asp" 

+            target="Judge vs Napster">Judge shuts Napster down

+            <P><IMG height=143 src="doc3_files/669915.jpg" 

+            width=200></A><BR>Check out the Goofy guy in the suit<BR>He's Sean 

+            Fanning, founder of Napster.<BR><BR>Got news?? <A 

+            href="mailto:Holodeck2@home.com">mailto:Holodeck2@home.com</A><BR></FONT><BR><BR><A 

+            name=newsitem964713289,83675,></A><B><U><FONT color=#003366 

+            face="Verdana, Arial" size=2>Ram Sinks.. more cooling for small 

+            places.</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:tim@bp6.com">tim</A> @ 8:54AM PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/964713289,83675,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">0 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>Need some cooling for your Videocard 

+            memory to get a little extra overclockability and FPS? <A 

+            href="http://www.overclockershideout.com/RamSinks.html" 

+            target=_BLANK>Overclockers Hiedout Ram Sinks</A> They just notified 

+            me of their new design.<BR><IMG border=1 

+            src="doc3_files/ramsink.jpg"></FONT><BR><BR><A 

+            name=newsitem964671589,7831,></A>

+            <TABLE bgColor=#003399 width="100%">

+              <TBODY>

+              <TR>

+                <TD><FONT color=#ffffff face=Verdana,arial 

+                  size=2><B>Wednesday, July 26, 

+            2000</B></FONT></TD></TR></TBODY></TABLE><BR><!--<hr noshade width=100%>--><B><U><FONT 

+            color=#003366 face="Verdana, Arial" size=2>is it 

+            [H]ard?</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:Holodeck@bp6.com">Holodeck2</A> @ 9:19PM 

+            PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/964671589,7831,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">0 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>Big heatsinks are good, very good. The 

+            bigger the better.<BR>You can never can have a too big of heatsink 

+            on a small chip (CPU, GPU, CHIPSET, etc)<BR><BR><IMG height=173 

+            src="doc3_files/voodooside2.jpg" width=230><BR>My overclocked 

+            Voodoo3 2000 with a BIG mofo heatsink on top.<BR>Peltier and 

+            watercooling next up :-)<BR>(if you pry off the heatsink you void 

+            the warranty )<BR><BR>it was originally posted on <A 

+            href="http://www.hardocp.com/">[H]ardOCP </A><BR>I&#8217;m not only a 

+            BP6er but also a [H]ardOCPer<BR></FONT><BR><BR><A 

+            name=newsitem964644047,60218,></A><B><U><FONT color=#003366 

+            face="Verdana, Arial" size=2>WiLd CaSe!!</FONT></U></B><BR><FONT 

+            color=#0066cc face=Arial size=1><SMALL>Posted by <A class=nav 

+            href="mailto:Holodeck@bp6.com">Holodeck2</A> @ 1:40PM 

+            PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/964644047,60218,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">8 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>Now this person really knows how to 

+            keep his case cool!!<BR>Addin an 18" Fan!! WOW!!<BR><BR><A 

+            href="http://www.envador.com/Photos/PVCII/" target=_blank><IMG 

+            src="doc3_files/TN_OpenedUp1.jpg"></A><BR>Click to go to his 

+            site.<BR></FONT><BR><BR><A 

+            name=newsitem964631110,84122,></A><B><U><FONT color=#003366 

+            face="Verdana, Arial" size=2>What the heck is a 

+            Peltier?!?!</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:Holodeck@bp6.com">Holodeck2</A> @ 10:05AM 

+            PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/964631110,84122,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">6 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>This is for all you people who wanted 

+            to know what a peltier is.<BR><BR>The quest fo the Perfect 

+            Peltier<BR><A 

+            href="http://www.tweakmax.com/html/peltier/peltier-1.cfm" 

+            target=_blank><IMG src="doc3_files/peltier.jpg"></A> <BR>Thanks to 

+            <A href="http://www.tweakmax.com/" target=_blank>TweakMax.com</A> 

+            <BR><BR>Note: Today morning when I woke up I saw my whole screen 

+            cluttered with a bunch of IMs!! I live in the USA on EST. If you 

+            live somewhere else please check the time in my area. for example: 

+            If you live in Europe and IM me in the morning your time I would be 

+            sleeping it would be like 4 in the morning here. Just to let you 

+            know <IMG src="doc3_files/smile.gif"><BR>I'm not angry at anyone... 

+            good thing I have a long fuse <IMG 

+            src="doc3_files/tongue.gif"><BR></FONT><BR><BR><A 

+            name=newsitem964587833,74573,></A>

+            <TABLE bgColor=#003399 width="100%">

+              <TBODY>

+              <TR>

+                <TD><FONT color=#ffffff face=Verdana,arial size=2><B>Tuesday, 

+                  July 25, 2000</B></FONT></TD></TR></TBODY></TABLE><BR><!--<hr noshade width=100%>--><B><U><FONT 

+            color=#003366 face="Verdana, Arial" size=2>HELLO 

+            EVERYONE!!!</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:Holodeck@bp6.com">Holodeck2</A> @ 10:03PM 

+            PDT</SMALL>&nbsp; <BR><FONT color=black face=Arial size=2>Hello 

+            everyone, Woohoo!! I'm on!!<BR>Who is this Holodeck2 person 

+            anyways?!?! Read on :-)<BR>I&#8217;m a regular on the bp6 messageboard, 

+            trying to help people out with their problems.<BR>I&#8217;m the 

+            self-proclaimed bp6 cooling expert, If you have a cooling idea, I&#8217;ve 

+            probably already done it and can offer some incite.<BR>My computer 

+            is always on so you can contact me whenever... problem is, I'm not 

+            always in front of it. I'll try to update this page and keep 

+            everyone happy :-)<BR>Any Questions or comments, you can either 

+            contact me or post it on the messageboard.<BR><BR>Ways to contact 

+            me.<BR>E-mail: <A 

+            href="mailto:Holodeck2@home.com">Holodeck2@home.com</A> (All E-mails 

+            will be answered in 24 hours or less, I guarantee it.)<BR>When you 

+            write me an e-mail please put in the subject line "BP6" then the 

+            rest of your subject so my e-mail program can sort it, thanks<BR><A 

+            href="http://www.aol.com/aim">AIM: </A>Holodeck2 (instant response 

+            if I&#8217;m in front of my comp and not trying to frag someone)<BR><A 

+            href="http://www.icq.com/download">ICQ: </A>82640218 (rarely 

+            on)<BR><BR>P.S. If someone named &#8220;Digital Vortex&#8221; on either Quake 3 

+            or 2 frags you, it&#8217;s probably me. ;-)<BR></FONT><BR><BR><A 

+            name=newsitem964429577,13375,></A>

+            <TABLE bgColor=#003399 width="100%">

+              <TBODY>

+              <TR>

+                <TD><FONT color=#ffffff face=Verdana,arial size=2><B>Monday, 

+                  July 24, 2000</B></FONT></TD></TR></TBODY></TABLE><BR><!--<hr noshade width=100%>--><B><U><FONT 

+            color=#003366 face="Verdana, Arial" size=2>BP6 Q3 server up and 

+            running..</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:tim@bp6.com">tim</A> @ 2:06AM PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/964429577,13375,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">3 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>Setup a Q3 server for anyone wanting 

+            to practice in preparation for Quakecon.. Connect to bp6.dyndns.org 

+            default port. (SERVER: BP6 system, 256 MB ram, celeron 600 on a T3 

+            connection)... Will be moved to another BP6 server eventually. This 

+            is only a temporary test of the system and net connection. <BR>(BTW- 

+            there are a few bot's running around in there..)</FONT><BR><BR><A 

+            name=newsitem964425184,95812,></A><B><U><FONT color=#003366 

+            face="Verdana, Arial" size=2>BIOS Savior to the 

+            rescue....</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:tim@bp6.com">tim</A> @ 12:53AM PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/964425184,95812,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">2 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>Do you sweat during the BIOS flashing 

+            procedure on your BP6 mobo? If so then this little gadget maybe 

+            worth a first look. It's called the "<B>RD1 BIOS Savior</B>" and it 

+            plugs in between your BIOS ROM and the BIOS ROM socket on your mobo. 

+            This device will backup your BIOS and and allow you to recover your 

+            BIOS in the event that your flashing session goes wrong. In the 

+            event of a bad flash, just flip a switch on the RDI and boot up your 

+            system, and flash again. This is also good as a failsafe in case you 

+            don't believe in Virus Protecting your computer. (Thanks to Fred for 

+            link)<BR><A href="http://www.ioss.com.tw/eg/rd1/RD1info0004.PDF" 

+            target=_NEW>Manufacturers Brochure</A> (PDF Format)<BR><A 

+            href="http://192.216.185.10/mwave/doc/A06950.html" 

+            target='_BLANK"'>Another info page</A><BR><A 

+            href="http://192.216.185.10/mwave/ProdMB-AC-MW.hmx?UID=&amp;CID=&amp;updepts=MB&amp;DNAME=%3Cb%3EMotherboards%3C%2Fb%3E&amp;Back=ProdMB-AC-MW.hmx?" 

+            target=_BLANK>Available for about $20</A><BR><BR><IMG 

+            src="doc3_files/rd1.jpg"></FONT><BR><BR><A 

+            name=newsitem963875853,12731,></A>

+            <TABLE bgColor=#003399 width="100%">

+              <TBODY>

+              <TR>

+                <TD><FONT color=#ffffff face=Verdana,arial size=2><B>Monday, 

+                  July 17, 2000</B></FONT></TD></TR></TBODY></TABLE><BR><!--<hr noshade width=100%>--><B><U><FONT 

+            color=#003366 face="Verdana, Arial" size=2>How To 

+            Overclock</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:killz@i82hq.com">DareDevil</A> @ 4:17PM 

+            PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/963875853,12731,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">3 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>For those of you who are new to 

+            overclocking, this guide will explain to you how to overclock, and 

+            what some of the terms are. Like 'FSB' (what the heck is that!? 

+            :0))<BR><BR><A href="http://netkills.qgl.org/a_oc_comp.shtml" 

+            target=_blank>How To Overclock</A> </FONT><BR><BR><A 

+            name=newsitem963875485,23353,></A><B><U><FONT color=#003366 

+            face="Verdana, Arial" size=2>The Cardcooler 

+            XT</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:killz@i82hq.com">DareDevil</A> @ 4:11PM 

+            PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/963875485,23353,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">1 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>Wow! I am impressed! Nevermind keeping 

+            the CPU's cool... Keep your whole board cool!<BR><BR><I>Even if your 

+            not overclocking your system (or planning on it), this unit will 

+            provide system stability and longevity. What would happen one day of 

+            your GeForce or CPU fan went dead? You can also think of this 

+            cooling unit as a backup to essential cooling fans in your 

+            system.</I><BR><BR>Check this out!<BR><BR><A 

+            href="http://www.brokenpixel.com/articles/coolerXT/cardcoolerXT_1.shtml" 

+            target=_blank>http://www.brokenpixel.com/articles/coolerXT/cardcoolerXT_1.shtml</A> 

+            </FONT><BR><BR><A name=newsitem963859982,88982,></A><B><U><FONT 

+            color=#003366 face="Verdana, Arial" size=2>'Nerd 

+            Inside'</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:killz@i82hq.com">DareDevil</A> @ 11:53AM 

+            PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/963859982,88982,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">1 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>We all need to have some fun 

+            sometimes! Check out this little web site that sells 'nerd' clothing 

+            ;) (I like the bibs in the Junior Hackerz section) :-Þ<BR><BR>

+            <DIV align=center><A href="http://www.nerdgear.com/" 

+            target=_blank><IMG border=0 

+            src="doc3_files/nerdinside.gif"></A></DIV></FONT><BR><BR><A 

+            name=newsitem963819796,9688,></A><B><U><FONT color=#003366 

+            face="Verdana, Arial" size=2>Dual PSU Wiring diagram... (preview to 

+            Part 1 Watercooling Project)</FONT></U></B><BR><FONT color=#0066cc 

+            face=Arial size=1><SMALL>Posted by <A class=nav 

+            href="mailto:tim@bp6.com">tim</A> @ 12:43AM PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/963819796,9688,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">11 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>When is comes to overclocking your 

+            system, cooling plays a big role. Powering all of those fans in your 

+            system can cause quite a strain on your PSU (Power Supply Unit). 

+            Depending on the number of peripherals in your system, adding a more 

+            powerfull PSU or adding a second PSU may be neccesary. For 

+            watercooling and using peltiers, dedicating a second PSU to power 

+            the Peltiers (TEC's) is a good idea. Here I have come up with 2 

+            diagrams on how I wired dual 300 watt ATX power supply units for the 

+            Blizzard BP6 watercooling project. Consider this part of Step 1. 

+            More will follow this week. BTW.. hacking up your PSU's is very 

+            dangerous and is not recommended unless you know what you are doing. 

+            <BR><BR>View Diagram 1 <A 

+            href="http://bp6.gamesquad.net/images/wiring.jpg" 

+            target=_BLANK>here</A>.<BR>View Diagram 2 <A 

+            href="http://bp6.gamesquad.net/images/psu2.gif" 

+            target=_BLANK>here</A>.<BR><BR>I used Tap-In Squeeze Connectors and 

+            22 guage wire to connect the wires. You can get them at Radio Shack 

+            Part# 64-3053 or <A 

+            href="http://www.radioshack.com/ProductCatalog/ProductDetail/Index/1,2098,,00.html?SKUString1=64&amp;SKUString2=3053" 

+            target=_blank>click here</A>.</FONT><BR><BR><A 

+            name=newsitem963766655,78511,></A>

+            <TABLE bgColor=#003399 width="100%">

+              <TBODY>

+              <TR>

+                <TD><FONT color=#ffffff face=Verdana,arial size=2><B>Sunday, 

+                  July 16, 2000</B></FONT></TD></TR></TBODY></TABLE><BR><!--<hr noshade width=100%>--><B><U><FONT 

+            color=#003366 face="Verdana, Arial" size=2>RAM Overclocking? 

+            Hmmmmm.</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:killz@i82hq.com">DareDevil</A> @ 9:57AM 

+            PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/963766655,78511,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">3 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>I know we're pretty big overclockers 

+            here at BP6.Com so, this is a post of choice ;-) I've seen the 

+            question in the message boards, 'why can't I overclock any higher?' 

+            Well, it's not always the CPU that's holding you back... Many other 

+            things need to be taken care of to overclock such as your PCI 

+            devices (can they handle the higher bus speed), the actual CPU, and 

+            your RAM. I'm not saying that that a high quality stick of silicon 

+            will enable you to overclock your 366MHz to 1 GHZ (I wish!), but, it 

+            will certainly help =)<BR><BR>Extreme Overclocking has tested 

+            (overclocked) PC133 RAM to there full potential. Here's a quote I 

+            found and the link:<BR><BR><I>Well, the guys at Extreme Overclocking 

+            have been hard at work again with their latest review. This time 

+            they have put seven 128MB PC133 memory modules through the torture 

+            tests to determine their maximum overclocking potential. Which one's 

+            came out on top? Read the review to find out....</I><BR><BR><A 

+            href="http://www.extremeoverclocking.com/reviews/memory/ram_roundup_1.html" 

+            target=_blank>Cooked RAM... Yummie</A><BR><BR>The 

+            ÐÐ.</FONT><BR><BR><A name=newsitem963764236,76720,></A><B><U><FONT 

+            color=#003366 face="Verdana, Arial" size=2>CPU 

+            Guide</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:killz@i82hq.com">DareDevil</A> @ 9:17AM 

+            PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/963764236,76720,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">0 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>A follow up on the 'Weekly CPU 

+            Prices', this guide will help you determine which cpu is best for 

+            you (and your board ;-)). Sent to me by Spanky, here's the 

+            link:<BR><BR>

+            <LI><A 

+            href="http://www6.tomshardware.com/howto/00q2/000412/index.html" 

+            target=_blank>http://www6.tomshardware.com/howto/00q2/000412/index.html</A></FONT><BR><BR><A 

+            name=newsitem963685749,28290,></A>

+            <TABLE bgColor=#003399 width="100%">

+              <TBODY>

+              <TR>

+                <TD><FONT color=#ffffff face=Verdana,arial size=2><B>Saturday, 

+                  July 15, 2000</B></FONT></TD></TR></TBODY></TABLE><BR><!--<hr noshade width=100%>--><B><U><FONT 

+            color=#003366 face="Verdana, Arial" size=2>Weekly CPU 

+            Prices</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:killz@i82hq.com">DareDevil</A> @ 11:29AM 

+            PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/963685749,28290,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">2 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>Wow, found this very useful! Wanting 

+            to buy a new CPU? Check out this detailed price list!<BR><BR><A 

+            href="http://www.sharkyextreme.com/hardware/weekly_cpu/" 

+            target=_blank>Click Here.</A> <BR><BR>Thanks Sharky 

+            Extreme!</FONT><BR><BR><A 

+            name=newsitem963679881,35277,></A><B><U><FONT color=#003366 

+            face="Verdana, Arial" size=2>Fast Wallpapers</FONT></U></B><BR><FONT 

+            color=#0066cc face=Arial size=1><SMALL>Posted by <A class=nav 

+            href="mailto:killz@i82hq.com">DareDevil</A> @ 9:51AM 

+            PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/963679881,35277,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">0 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>FAST-MHz has released some wallpapers! 

+            <A href="http://64.29.18.111/wallpaper/index.html" 

+            target=_blank>Click here</A> to view them. They come in sizes 

+            800x600 1024x768 and 1152x864. If you have your desktop set at a 

+            larger size, just use the 'stretch' function in desktop properties 

+            instead of 'center'. Works great.<BR><BR>In other news, we want to 

+            finnish off all the sections at BP6.Com so, to start, we're going to 

+            work on the <A href="http://bp6.gamesquad.net/uc.phtml" 

+            target=_blank>Picture Gallery</A>. To help us out, you can send in 

+            all your cool, wierd, crazy pics that you may have to: <A 

+            href="mailto:thedaredevil@bp6.com">thedaredevil@bp6.com</A>. (The 

+            topic being computers, duh! :0) And no... I don't want to recieve 

+            any porno piccies in my mailbox! I have enough of those!) Kidding 

+            guys.<BR><BR>Okay, that's all for now.<BR><BR>The 

+            ÐÐ.</FONT><BR><BR><A name=newsitem963619505,3764,></A>

+            <TABLE bgColor=#003399 width="100%">

+              <TBODY>

+              <TR>

+                <TD><FONT color=#ffffff face=Verdana,arial size=2><B>Friday, 

+                  July 14, 2000</B></FONT></TD></TR></TBODY></TABLE><BR><!--<hr noshade width=100%>--><B><U><FONT 

+            color=#003366 face="Verdana, Arial" size=2>Hey 

+            There!</FONT></U></B><BR><FONT color=#0066cc face=Arial 

+            size=1><SMALL>Posted by <A class=nav 

+            href="mailto:killz@i82hq.com">DareDevil</A> @ 5:05PM 

+            PDT</SMALL>&nbsp; <A 

+            href="http://bp6.gamesquad.net/news/963619505,3764,.html"><IMG 

+            border=0 src="doc3_files/comments.gif">7 comments</A> 

+            &nbsp;|&nbsp;<A 

+            href="http://bp6.gamesquad.net/#news_top">top</A></FONT> <BR><FONT 

+            color=black face=Arial size=2>Hey guys, just wanted to introduce 

+            myself, some of you may have already met me on the BP6.com board. 

+            I'll be posting up news from time to time now so, if you'd like, you 

+            may send me some news to be posted if you find any ( we don't want 

+            to flood Tim ;-) ).<BR><BR>My e-mail address is <A 

+            href="mailto:killz@i82hq.com">killz@i82hq.com</A><BR><BR>Ciao for 

+            now.<BR><BR>The ÐÐ.</FONT><BR><BR>

+            <CENTER><IFRAME frameBorder=0 height=60 marginHeight=0 marginWidth=0 

+            noResize scrolling=no src="doc3_files/ad_iframe.htm" 

+            width=468><a href="http://ads.adflight.com/go_static.asp?asid=7708" target="_top"><img width=468 height=60 border=0 alt="Advertisement" src="http://ads.adflight.com/ad_static.asp?pid=2097&sid=1881&asid=7708"></a></IFRAME></CENTER></LI></FONT></TD></TR></TBODY></TABLE></CENTER></P></TD>

+    <TD bgColor=silver vAlign=top width="10%">

+      <CENTER>

+      <P>

+      <TABLE bgColor=silver border=0 cellPadding=0 cellSpacing=0 width="100%">

+        <TBODY>

+        <TR>

+          <TD COLSTART="1">

+            <CENTER><!--	<FORM ACTION="/cgi-bin/subscribe.pl" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded">

+						<IMG SRC="/images/spacer.gif" WIDTH="111" HEIGHT="1"><BR>

+						<P><B><FONT SIZE="2" COLOR="#000066" FACE="Verdana">Newsletter</FONT></B><FONT SIZE="1" FACE="Verdana"><BR>

+						<INPUT TYPE="TEXT" NAME="email" SIZE="10" VALUE="ur@email.com"><BR>

+						<INPUT TYPE="HIDDEN" NAME="subscribe" SIZE="-1" VALUE="subscribe"><INPUT TYPE="IMAGE" SRC="/images/subscribe.gif" WIDTH="80"

+						HEIGHT="27" ALIGN="BOTTOM" BORDER="0"></FONT>

+						</FORM> -->

+            <FORM 

+            action=http://bp6.gamesquad.net/cgi-bin/news/viewnews.cgi?emaillist 

+            method=post><IMG height=1 src="doc3_files/spacer.gif" 

+            width=111><BR><FONT size=1>Newsletter<BR><INPUT name=npemail size=13 

+            value="e-mail addr."><BR><INPUT name=npsubscribe style="BACKGROUND-COLOR: #000000; COLOR: #ffffff; FONT-FAMILY: Verdana; FONT-SIZE: xx-small; FONT-WEIGHT: bold" type=submit value=Subscribe><BR><!-- <input type="submit" name="npunsubscribe" value="Unsubscribe" style="font-size: xx-small; font-family: Verdana; font-weight: bold; color: #ffffff; background-color: #000000;"> --></FONT></FORM><FONT 

+            size=1>

+            <FORM 

+            action=http://bp6.gamesquad.net/cgi-bin/news/viewnews.cgi?search 

+            method=post>Search news<BR><INPUT name=searchstring size=13><BR><INPUT name=submit style="BACKGROUND-COLOR: #000000; COLOR: #ffffff; FONT-FAMILY: Verdana; FONT-SIZE: xx-small; FONT-WEIGHT: bold" type=submit value=Submit><BR><A 

+            href="http://bp6.gamesquad.net/cgi-bin/news/viewnews.cgi?newsall">News 

+            archive</A></FONT> </FORM></CENTER></TD></TR></TBODY></TABLE><!--				<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%" BGCOLOR="silver">

+					<TR>

+						<TD WIDTH="100%">

+							<P ALIGN="CENTER"><A HREF="http://www.free56k.com" target="_blank"><IMG SRC="/images/free56k.gif" WIDTH="100" HEIGHT="49"

+							ALIGN="BOTTOM" BORDER="0"></A>

+						</TD>

+					</TR>

+				</TABLE> 

+-->

+      <TABLE bgColor=silver border=0 cellPadding=0 cellSpacing=0 width="100%">

+        <TBODY>

+        <TR>

+          <TD align=middle width="100%"><!-- BEGIN GoTo.com Search Box -->

+            <SCRIPT language=javascript type=text/javascript>

+							<!--

+							if ((parseInt(navigator.appVersion) >= 3)

+							&& (navigator.appName != "Netscape")) {

+							document.write("<IFRAME marginheight=0 frameborder=0 ");

+							document.write("marginwidth=0 scrolling=no width=100 height");

+							document.write("=90 ");

+							document.write("SRC=http://www.goto.com/d/ssn/dynconsole/?t");

+							document.write("ype=html&size=100x90&url=http://www.goto.co");

+							document.write("m/d/search/ssn/&target=_blank&Partner=SSN80");

+							document.write("42DF8478957377></IFRAME>");

+							} else if ((parseInt(navigator.appVersion) > 3)

+							&& (navigator.appName == "Netscape")) {

+							document.write("<SCRIPT language=javascript type=text/javas");

+							document.write("cript ");

+							document.write("SRC=http://www.goto.com/d/ssn/dynconsole/?t");

+							document.write("ype=js&size=100x90&url=http://www.goto.com/");

+							document.write("d/search/ssn/&target=_blank&Partner=SSN8042");

+							document.write("DF8478957377></SC");

+							document.write("RIPT>");

+							} else {

+							document.write("<A TARGET=_blank ");

+							document.write("HREF=http://www.goto.com/d/search/ssn/?from");

+							document.write("GIF=true>");

+							document.write("<IMG ismap ");

+							document.write("SRC=http://www.goto.com/d/ssn/dynconsole/?t");

+							document.write("ype=gif&size=100x90></A>");

+							}

+							// -->

+							</SCRIPT>

+            <B><NOSCRIPT></B><A 

+            href="http://www.goto.com/d/search/ssn/?fromGIF=true" 

+            target=_blank><IMG align=bottom border=0 height=90 isMap 

+            src="doc3_files/100x90.gif" width=100></A><B><A 

+            href="http://www.goto.com/d/search/ssn/?fromGIF=true" target=_blank> 

+            </A></A></B><B></NOSCRIPT></B><B><!-- END GoTo.com Search Box --></B><!-- Pricewatch Search Box -->

+            <FORM action=http://www.pricewatch.com/search/search.asp method=get 

+            target=_Blank>

+            <CENTER>

+            <P><B><FONT color=white face="ARIAL, HELVETICA" size=1>PC Price 

+            Search<BR></FONT></B><INPUT maxLength=30 name=criteria size=10><BR><INPUT name=submit style="BACKGROUND-COLOR: #000000; COLOR: #ffffff; FONT-FAMILY: Verdana; FONT-SIZE: xx-small; FONT-WEIGHT: bold" type=submit value=Search> 

+            </FORM><!-- Pricewatch Search Box --><A 

+            href="http://www.puicorp.com/bp6specials.htm" target=_BLANK><IMG 

+            src="doc3_files/puibp6.gif"></A><BR><BR><BR><BR><A 

+            href="http://store.yahoo.com/dunamis-site/maxtor.html" 

+            target=_BLANK><IMG 

+            alt="BP6.com Special - Enter CODE: BP6-hd in the order (notes) to receive a discount" 

+            src="doc3_files/hd5.gif"><FONT size=1><BR>BP6.COM 

+            Special<BR>Code:BP6-hd</FONT></A> </P></CENTER></TD></TR></TBODY></TABLE>

+      <TABLE bgColor=silver border=0 cellPadding=0 cellSpacing=0 height="100%" 

+      width="100%">

+        <TBODY>

+        <TR>

+          <TD 

+width="100%">&nbsp;</TD></TR></TBODY></TABLE></P></CENTER></TR></TBODY></TABLE><!--	</TABLE>-->

+<CENTER></CENTER></TD></TR><TR><TD COLSPAN="3" VALIGN="TOP" 

+HEIGHT="70">&nbsp;</TD> </TR></TABLE>

+<TABLE border=0 width=780>

+  <TBODY>

+  <TR>

+    <TD width=780>

+      <P align=center><FONT color=#999999 face=verdana,arial size=1>Copyright 

+      ©1999-2000 BP6.com, All rights reserved.<BR>Got news? Send it to </FONT><A 

+      href="mailto:tim@bp6.com"><FONT color=white face=Verdana 

+      size=1>Tim</FONT></A> </P></TD></TR><!--	<TR>		<TD WIDTH="780">			<P ALIGN="CENTER"><FONT SIZE="1" COLOR="#999999" FACE="Verdana,arial">Site design by Tim Brinkley</FONT>		</TD>	</TR> --></TBODY></TABLE></DIV>

+<SCRIPT> window.open=NS_ActualOpen; </SCRIPT>

+</BODY></HTML>

diff --git a/test/HTML/entities.html b/test/HTML/entities.html
new file mode 100644
index 0000000..97aeb14
--- /dev/null
+++ b/test/HTML/entities.html
@@ -0,0 +1,5 @@
+<p tst="a&amp;b" tst2="a&b" tst3="a & b">
+a&amp;b
+a&b
+a & b
+</p>
diff --git a/testHTML.c b/testHTML.c
index 7cd3a5e..85e2e82 100644
--- a/testHTML.c
+++ b/testHTML.c
@@ -403,12 +403,14 @@
 void
 charactersDebug(void *ctx, const xmlChar *ch, int len)
 {
+    char output[40];
     int i;
 
-    fprintf(stdout, "SAX.characters(");
-    for (i = 0;(i < len) && (i < 30);i++)
-	fprintf(stdout, "%c", ch[i]);
-    fprintf(stdout, ", %d)\n", len);
+    for (i = 0;(i<len) && (i < 30);i++)
+	output[i] = ch[i];
+    output[i] = 0;
+
+    fprintf(stdout, "SAX.characters(%s, %d)\n", output, len);
 }
 
 /**
@@ -437,8 +439,14 @@
 void
 ignorableWhitespaceDebug(void *ctx, const xmlChar *ch, int len)
 {
-    fprintf(stdout, "SAX.ignorableWhitespace(%.30s, %d)\n",
-            (char *) ch, len);
+    char output[40];
+    int i;
+
+    for (i = 0;(i<len) && (i < 30);i++)
+	output[i] = ch[i];
+    output[i] = 0;
+
+    fprintf(stdout, "SAX.ignorableWhitespace(%s, %d)\n", output, len);
 }
 
 /**
@@ -571,21 +579,78 @@
     /*
      * Empty callbacks for checking
      */
-    doc = htmlSAXParseFile(filename, NULL, emptySAXHandler, NULL);
-    if (doc != NULL) {
-        fprintf(stdout, "htmlSAXParseFile returned non-NULL\n");
-	xmlFreeDoc(doc);
-    }
+    if (push) {
+	FILE *f;
 
-    if (!noout) {
-	/*
-	 * Debug callback
-	 */
-	doc = htmlSAXParseFile(filename, NULL, debugSAXHandler, NULL);
+	f = fopen(filename, "r");
+	if (f != NULL) {
+	    int res, size = 3;
+	    char chars[4096];
+	    htmlParserCtxtPtr ctxt;
+
+	    /* if (repeat) */
+		size = 4096;
+	    res = fread(chars, 1, 4, f);
+	    if (res > 0) {
+		ctxt = htmlCreatePushParserCtxt(emptySAXHandler, NULL,
+			    chars, res, filename, 0);
+		while ((res = fread(chars, 1, size, f)) > 0) {
+		    htmlParseChunk(ctxt, chars, res, 0);
+		}
+		htmlParseChunk(ctxt, chars, 0, 1);
+		doc = ctxt->myDoc;
+		htmlFreeParserCtxt(ctxt);
+	    }
+	    if (doc != NULL) {
+		fprintf(stdout, "htmlSAXParseFile returned non-NULL\n");
+		xmlFreeDoc(doc);
+	    }
+	    fclose(f);
+	}
+	if (!noout) {
+	    f = fopen(filename, "r");
+	    if (f != NULL) {
+		int res, size = 3;
+		char chars[4096];
+		htmlParserCtxtPtr ctxt;
+
+		/* if (repeat) */
+		    size = 4096;
+		res = fread(chars, 1, 4, f);
+		if (res > 0) {
+		    ctxt = htmlCreatePushParserCtxt(debugSAXHandler, NULL,
+				chars, res, filename, 0);
+		    while ((res = fread(chars, 1, size, f)) > 0) {
+			htmlParseChunk(ctxt, chars, res, 0);
+		    }
+		    htmlParseChunk(ctxt, chars, 0, 1);
+		    doc = ctxt->myDoc;
+		    htmlFreeParserCtxt(ctxt);
+		}
+		if (doc != NULL) {
+		    fprintf(stdout, "htmlSAXParseFile returned non-NULL\n");
+		    xmlFreeDoc(doc);
+		}
+		fclose(f);
+	    }
+	}
+    } else {	
+	doc = htmlSAXParseFile(filename, NULL, emptySAXHandler, NULL);
 	if (doc != NULL) {
 	    fprintf(stdout, "htmlSAXParseFile returned non-NULL\n");
 	    xmlFreeDoc(doc);
 	}
+
+	if (!noout) {
+	    /*
+	     * Debug callback
+	     */
+	    doc = htmlSAXParseFile(filename, NULL, debugSAXHandler, NULL);
+	    if (doc != NULL) {
+		fprintf(stdout, "htmlSAXParseFile returned non-NULL\n");
+		xmlFreeDoc(doc);
+	    }
+	}
     }
 }
 
@@ -601,11 +666,11 @@
 	f = fopen(filename, "r");
 	if (f != NULL) {
 	    int res, size = 3;
-	    char chars[1024];
+	    char chars[4096];
 	    htmlParserCtxtPtr ctxt;
 
-	    if (repeat)
-		size = 1024;
+	    /* if (repeat) */
+		size = 4096;
 	    res = fread(chars, 1, 4, f);
 	    if (res > 0) {
 		ctxt = htmlCreatePushParserCtxt(NULL, NULL,
@@ -617,6 +682,7 @@
 		doc = ctxt->myDoc;
 		htmlFreeParserCtxt(ctxt);
 	    }
+	    fclose(f);
 	}
     } else {	
 	doc = htmlParseFile(filename, NULL);
diff --git a/testSAX.c b/testSAX.c
index e5568fc..fc1f573 100644
--- a/testSAX.c
+++ b/testSAX.c
@@ -402,12 +402,14 @@
 void
 charactersDebug(void *ctx, const xmlChar *ch, int len)
 {
+    char output[40];
     int i;
 
-    fprintf(stdout, "SAX.characters(");
-    for (i = 0;(i < len) && (i < 30);i++)
-	fprintf(stdout, "%c", ch[i]);
-    fprintf(stdout, ", %d)\n", len);
+    for (i = 0;(i<len) && (i < 30);i++)
+	output[i] = ch[i];
+    output[i] = 0;
+
+    fprintf(stdout, "SAX.characters(%s, %d)\n", output, len);
 }
 
 /**
@@ -436,8 +438,13 @@
 void
 ignorableWhitespaceDebug(void *ctx, const xmlChar *ch, int len)
 {
-    fprintf(stdout, "SAX.ignorableWhitespace(%.30s, %d)\n",
-            (char *) ch, len);
+    char output[40];
+    int i;
+
+    for (i = 0;(i<len) && (i < 30);i++)
+	output[i] = ch[i];
+    output[i] = 0;
+    fprintf(stdout, "SAX.ignorableWhitespace(%s, %d)\n", output, len);
 }
 
 /**
diff --git a/tree.c b/tree.c
index a686ff1..bb4d2f4 100644
--- a/tree.c
+++ b/tree.c
@@ -793,7 +793,8 @@
     if (list == NULL) return(NULL);
 
     while (node != NULL) {
-        if (node->type == XML_TEXT_NODE) {
+        if ((node->type == XML_TEXT_NODE) ||
+	    (node->type == XML_CDATA_SECTION_NODE)) {
 	    if (inLine) {
 #ifndef XML_USE_BUFFER_CONTENT
 		ret = xmlStrcat(ret, node->content);
@@ -1909,6 +1910,62 @@
 }
 
 /**
+ * xmlAddChildList:
+ * @parent:  the parent node
+ * @cur:  the first node in the list
+ *
+ * Add a list of node at the end of the child list of the parent
+ *
+ * Returns the last child or NULL in case of error.
+ */
+xmlNodePtr
+xmlAddChildList(xmlNodePtr parent, xmlNodePtr cur) {
+    xmlNodePtr prev;
+
+    if (parent == NULL) {
+#ifdef DEBUG_TREE
+        fprintf(stderr, "xmlAddChild : parent == NULL\n");
+#endif
+	return(NULL);
+    }
+
+    if (cur == NULL) {
+#ifdef DEBUG_TREE
+        fprintf(stderr, "xmlAddChild : child == NULL\n");
+#endif
+	return(NULL);
+    }
+
+    if ((cur->doc != NULL) && (parent->doc != NULL) &&
+        (cur->doc != parent->doc)) {
+#ifdef DEBUG_TREE
+	fprintf(stderr, "Elements moved to a different document\n");
+#endif
+    }
+
+    /*
+     * add the first element at the end of the children list.
+     */
+    if (parent->children == NULL) {
+        parent->children = cur;
+    } else {
+        prev = parent->last;
+	prev->next = cur;
+	cur->prev = prev;
+    }
+    while (cur->next != NULL) {
+	cur->parent = parent;
+	cur->doc = parent->doc; /* the parent may not be linked to a doc ! */
+        cur = cur->next;
+    }
+    cur->parent = parent;
+    cur->doc = parent->doc; /* the parent may not be linked to a doc ! */
+    parent->last = cur;
+
+    return(cur);
+}
+
+/**
  * xmlAddChild:
  * @parent:  the parent node
  * @cur:  the child node
diff --git a/tree.h b/tree.h
index 00f4ee6..a3ae15f 100644
--- a/tree.h
+++ b/tree.h
@@ -508,6 +508,8 @@
 					 const xmlChar *name);
 xmlNodePtr	xmlAddChild		(xmlNodePtr parent,
 					 xmlNodePtr cur);
+xmlNodePtr	xmlAddChildList		(xmlNodePtr parent,
+					 xmlNodePtr cur);
 xmlNodePtr	xmlReplaceNode		(xmlNodePtr old,
 					 xmlNodePtr cur);
 xmlNodePtr	xmlAddSibling		(xmlNodePtr cur,
diff --git a/valid.c b/valid.c
index 3fb7911..41c04d1 100644
--- a/valid.c
+++ b/valid.c
@@ -293,6 +293,16 @@
 void
 xmlFreeElementContent(xmlElementContentPtr cur) {
     if (cur == NULL) return;
+    switch (cur->type) {
+	case XML_ELEMENT_CONTENT_PCDATA:
+	case XML_ELEMENT_CONTENT_ELEMENT:
+	case XML_ELEMENT_CONTENT_SEQ:
+	case XML_ELEMENT_CONTENT_OR:
+	    break;
+	default:
+	    fprintf(stderr, "xmlFreeElementContent : type %d\n", cur->type);
+	    return;
+    }
     if (cur->c1 != NULL) xmlFreeElementContent(cur->c1);
     if (cur->c2 != NULL) xmlFreeElementContent(cur->c2);
     if (cur->name != NULL) xmlFree((xmlChar *) cur->name);
@@ -455,7 +465,7 @@
     ret->nb_elements = 0;
     ret->table = (xmlElementPtr *) 
          xmlMalloc(ret->max_elements * sizeof(xmlElementPtr));
-    if (ret == NULL) {
+    if (ret->table == NULL) {
         fprintf(stderr, "xmlCreateElementTable : xmlMalloc(%ld) failed\n",
 	        ret->max_elements * (long)sizeof(xmlElement));
 	xmlFree(ret);
@@ -877,7 +887,7 @@
     ret->nb_attributes = 0;
     ret->table = (xmlAttributePtr *) 
          xmlMalloc(ret->max_attributes * sizeof(xmlAttributePtr));
-    if (ret == NULL) {
+    if (ret->table == NULL) {
         fprintf(stderr, "xmlCreateAttributeTable : xmlMalloc(%ld) failed\n",
 	        ret->max_attributes * (long)sizeof(xmlAttributePtr));
 	xmlFree(ret);
@@ -1348,7 +1358,7 @@
     ret->nb_notations = 0;
     ret->table = (xmlNotationPtr *) 
          xmlMalloc(ret->max_notations * sizeof(xmlNotationPtr));
-    if (ret == NULL) {
+    if (ret->table == NULL) {
         fprintf(stderr, "xmlCreateNotationTable : xmlMalloc(%ld) failed\n",
 	        ret->max_notations * (long)sizeof(xmlNotation));
 	xmlFree(ret);
@@ -1617,7 +1627,7 @@
     ret->nb_ids = 0;
     ret->table = (xmlIDPtr *) 
          xmlMalloc(ret->max_ids * sizeof(xmlIDPtr));
-    if (ret == NULL) {
+    if (ret->table == NULL) {
         fprintf(stderr, "xmlCreateIDTable : xmlMalloc(%ld) failed\n",
 	        ret->max_ids * (long)sizeof(xmlID));
 	xmlFree(ret);
@@ -1896,7 +1906,7 @@
     ret->nb_refs = 0;
     ret->table = (xmlRefPtr *) 
          xmlMalloc(ret->max_refs * sizeof(xmlRefPtr));
-    if (ret == NULL) {
+    if (ret->table == NULL) {
         fprintf(stderr, "xmlCreateRefTable : xmlMalloc(%ld) failed\n",
 	        ret->max_refs * (long)sizeof(xmlRef));
 	xmlFree(ret);
@@ -3544,7 +3554,7 @@
 		VERROR(ctxt->userData, "Text element has namespace !\n");
 		return(0);
 	    }
-	    if (elem->ns != NULL) {
+	    if (elem->nsDef != NULL) {
 		VERROR(ctxt->userData, 
 		       "Text element carries namespace definitions !\n");
 		return(0);
diff --git a/xmllint.c b/xmllint.c
index f446906..b393930 100644
--- a/xmllint.c
+++ b/xmllint.c
@@ -31,6 +31,10 @@
 #endif
 #ifdef HAVE_SYS_MMAN_H
 #include <sys/mman.h>
+/* seems needed for Solaris */
+#ifndef MAP_FAILED
+#define MAP_FAILED ((void *) -1)
+#endif
 #endif
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>