diff --git a/ChangeLog b/ChangeLog
index 8671d02..700a90b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Mon Aug 28 11:58:12 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+	* HTMLparser.[ch] testHTML.c: applied the second set of
+	  patches from Wayne Davison <wayned@blorf.net>, adding 
+	  htmlEncodeEntities()
+	* HTMLparser.c: fixed an ignorable white space detection bug
+	  occuring when parsing with SAX only
+	* result/HTML/*.sax: updated since the output is now HTML
+	  encoded...
+
 Mon Aug 28 00:38:31 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
 
 	* HTMLparser.[ch]: applied some of Wayne Davison <wayned@blorf.net>
diff --git a/HTMLparser.c b/HTMLparser.c
index 05ef674..709be8d 100644
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -1341,7 +1341,7 @@
 
 	/* assertion: c is a single UTF-4 value */
 	if (c < 0x80) {
-	    if (out >= outend)
+	    if (out + 1 >= outend)
 		break;
 	    *out++ = c;
 	} else {
@@ -1360,7 +1360,7 @@
 		return(-2);
 	    }
 	    len = strlen(ent->name);
-	    if (out + 2 + len > outend)
+	    if (out + 2 + len >= outend)
 		break;
 	    *out++ = '&';
 	    memcpy(out, ent->name, len);
@@ -1374,6 +1374,99 @@
     return(0);
 }
 
+/**
+ * htmlEncodeEntities:
+ * @out:  a pointer to an array of bytes to store the result
+ * @outlen:  the length of @out
+ * @in:  a pointer to an array of UTF-8 chars
+ * @inlen:  the length of @in
+ * @quoteChar: the quote character to escape (' or ") or zero.
+ *
+ * Take a block of UTF-8 chars in and try to convert it to an ASCII
+ * plus HTML entities block of chars out.
+ *
+ * Returns 0 if success, -2 if the transcoding fails, or -1 otherwise
+ * The value of @inlen after return is the number of octets consumed
+ *     as the return value is positive, else unpredictiable.
+ * The value of @outlen after return is the number of octets consumed.
+ */
+int
+htmlEncodeEntities(unsigned char* out, int *outlen,
+		   const unsigned char* in, int *inlen, int quoteChar) {
+    const unsigned char* processed = in;
+    const unsigned char* outend = out + (*outlen);
+    const unsigned char* outstart = out;
+    const unsigned char* instart = in;
+    const unsigned char* inend = in + (*inlen);
+    unsigned int c, d;
+    int trailing;
+
+    while (in < inend) {
+	d = *in++;
+	if      (d < 0x80)  { c= d; trailing= 0; }
+	else if (d < 0xC0) {
+	    /* trailing byte in leading position */
+	    *outlen = out - outstart;
+	    *inlen = processed - instart;
+	    return(-2);
+        } else if (d < 0xE0)  { c= d & 0x1F; trailing= 1; }
+        else if (d < 0xF0)  { c= d & 0x0F; trailing= 2; }
+        else if (d < 0xF8)  { c= d & 0x07; trailing= 3; }
+	else {
+	    /* no chance for this in Ascii */
+	    *outlen = out - outstart;
+	    *inlen = processed - instart;
+	    return(-2);
+	}
+
+	if (inend - in < trailing)
+	    break;
+
+	while (trailing--) {
+	    if (((d= *in++) & 0xC0) != 0x80) {
+		*outlen = out - outstart;
+		*inlen = processed - instart;
+		return(-2);
+	    }
+	    c <<= 6;
+	    c |= d & 0x3F;
+	}
+
+	/* assertion: c is a single UTF-4 value */
+	if (c < 0x80 && c != quoteChar && c != '&' && c != '<' && c != '>') {
+	    if (out >= outend)
+		break;
+	    *out++ = c;
+	} else {
+	    htmlEntityDescPtr ent;
+	    const char *cp;
+	    char nbuf[16];
+	    int len;
+
+	    /*
+	     * Try to lookup a predefined HTML entity for it
+	     */
+	    ent = htmlEntityValueLookup(c);
+	    if (ent == NULL) {
+		sprintf(nbuf, "#%u", c);
+		cp = nbuf;
+	    }
+	    else
+		cp = ent->name;
+	    len = strlen(cp);
+	    if (out + 2 + len > outend)
+		break;
+	    *out++ = '&';
+	    memcpy(out, cp, len);
+	    out += len;
+	    *out++ = ';';
+	}
+	processed = in;
+    }
+    *outlen = out - outstart;
+    *inlen = processed - instart;
+    return(0);
+}
 
 /**
  * htmlDecodeEntities:
@@ -1555,6 +1648,12 @@
 
     if (CUR == 0) return(1);
     if (CUR != '<') return(0);
+    if (ctxt->name == NULL)
+	return(1);
+    if (!xmlStrcmp(ctxt->name, BAD_CAST"head"))
+	return(1);
+    if (!xmlStrcmp(ctxt->name, BAD_CAST"body"))
+	return(1);
     if (ctxt->node == NULL) return(0);
     lastChild = xmlGetLastChild(ctxt->node);
     if (lastChild == NULL) {
diff --git a/HTMLparser.h b/HTMLparser.h
index 97a8b01..5d42f45 100644
--- a/HTMLparser.h
+++ b/HTMLparser.h
@@ -86,6 +86,10 @@
 					 int *outlen,
 					 const unsigned char* in,
 					 int *inlen);
+int			htmlEncodeEntities(unsigned char* out,
+					 int *outlen,
+					 const unsigned char* in,
+					 int *inlen, int quoteChar);
 
 /**
  * Interfaces for the Push mode
diff --git a/include/libxml/HTMLparser.h b/include/libxml/HTMLparser.h
index 97a8b01..5d42f45 100644
--- a/include/libxml/HTMLparser.h
+++ b/include/libxml/HTMLparser.h
@@ -86,6 +86,10 @@
 					 int *outlen,
 					 const unsigned char* in,
 					 int *inlen);
+int			htmlEncodeEntities(unsigned char* out,
+					 int *outlen,
+					 const unsigned char* in,
+					 int *inlen, int quoteChar);
 
 /**
  * Interfaces for the Push mode
diff --git a/result/HTML/Down.html.sax b/result/HTML/Down.html.sax
index 6b23930..defeff1 100644
--- a/result/HTML/Down.html.sax
+++ b/result/HTML/Down.html.sax
@@ -7,46 +7,35 @@
 , 1)
 SAX.endElement(p)
 SAX.startElement(head)
-SAX.endElement(head)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
   , 3)
-SAX.endElement(p)
 SAX.startElement(title)
 SAX.characters(This service is temporary down, 30)
 SAX.endElement(title)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.error: Unexpected end tag : head
-SAX.characters(
+SAX.endElement(head)
+SAX.ignorableWhitespace(
 
 , 2)
-SAX.endElement(p)
 SAX.startElement(body, bgcolor='#FFFFFF')
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(h1, align='center')
-SAX.characters(Sorry, this service is tempora, 37)
+SAX.characters(Sorry, this service is tempora, 30)
 SAX.endElement(h1)
 SAX.startElement(p)
 SAX.characters(
-We are doing our best to get , 48)
+We are doing our best to get , 30)
 SAX.endElement(p)
 SAX.startElement(p)
 SAX.characters(The W3C system administrators, 29)
 SAX.endElement(p)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.endElement(body)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.endElement(body)
 SAX.endElement(html)
 SAX.ignorableWhitespace(
diff --git a/result/HTML/doc2.htm.sax b/result/HTML/doc2.htm.sax
index 5eafa0c..edd2b2a 100644
--- a/result/HTML/doc2.htm.sax
+++ b/result/HTML/doc2.htm.sax
@@ -8,38 +8,36 @@
 SAX.startElement(title)
 SAX.characters(Welcome to Copernic.com, 23)
 SAX.endElement(title)
-SAX.endElement(head)
-SAX.startElement(body)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(script, language='javascript')
 SAX.characters(
-          NS_ActualOpen=windo, 194)
+          NS_ActualOpen=windo, 30)
 SAX.endElement(script)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
 SAX.comment( END Naviscope Javascript )
 SAX.error: Misplaced DOCTYPE declaration
 SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, )
 SAX.comment( saved from url=(0027)http://www.agents-tech.com/ )
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(meta, content='text/html; charset=iso-8859-1', http-equiv='Content-Type')
 SAX.endElement(meta)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 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(
+SAX.ignorableWhitespace(
 , 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(
+SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(meta, content='MSHTML 5.00.3103.1000', name='GENERATOR')
 SAX.endElement(meta)
-SAX.error: Unexpected end tag : head
+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, scrolling='no', src='doc2_files/side.htm', target='rtop')
 SAX.endElement(frame)
@@ -54,23 +52,18 @@
 
   , 4)
 SAX.startElement(body, bgcolor='#FFFFFF', text='#000000', link='#000080', vlink='#000080', alink='#000080', topmargin='0', leftmargin='0', marginheight='0', marginwidth='0')
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
   , 3)
-SAX.endElement(p)
 SAX.startElement(p)
-SAX.characters(This page uses frames, but you, 61)
+SAX.characters(This page uses frames, but you, 30)
 SAX.endElement(p)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
   , 3)
-SAX.endElement(p)
 SAX.endElement(body)
 SAX.characters(
   , 3)
 SAX.endElement(noframes)
 SAX.endElement(frameset)
-SAX.endElement(p)
 SAX.endElement(body)
 SAX.endElement(html)
 SAX.ignorableWhitespace(
diff --git a/result/HTML/doc3.htm.sax b/result/HTML/doc3.htm.sax
index 98ef2ac..c810f35 100644
--- a/result/HTML/doc3.htm.sax
+++ b/result/HTML/doc3.htm.sax
Binary files differ
diff --git a/result/HTML/entities.html.sax b/result/HTML/entities.html.sax
index bc1920b..709b60d 100644
--- a/result/HTML/entities.html.sax
+++ b/result/HTML/entities.html.sax
@@ -4,19 +4,19 @@
 SAX.startElement(body)
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: no name
-SAX.startElement(p, tst='a&b', tst2='a&b', tst3='a & b')
+SAX.startElement(p, tst='a&amp;b', tst2='a&amp;b', tst3='a &amp; b')
 SAX.characters(
 a, 2)
-SAX.characters(&, 1)
+SAX.characters(&amp;, 1)
 SAX.characters(b
 a, 3)
 SAX.error: htmlParseEntityRef: expecting ';'
-SAX.characters(&, 1)
+SAX.characters(&amp;, 1)
 SAX.characters(b, 1)
 SAX.characters(
 a , 3)
 SAX.error: htmlParseEntityRef: no name
-SAX.characters(&, 1)
+SAX.characters(&amp;, 1)
 SAX.characters( b
 , 3)
 SAX.endElement(p)
diff --git a/result/HTML/fp40.htm.sax b/result/HTML/fp40.htm.sax
index 94c7055..0314276 100644
--- a/result/HTML/fp40.htm.sax
+++ b/result/HTML/fp40.htm.sax
@@ -9,40 +9,34 @@
 , 2)
 SAX.endElement(p)
 SAX.startElement(head)
-SAX.endElement(head)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(meta, name='GENERATOR', content='Microsoft FrontPage 4.0')
 SAX.endElement(meta)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(title)
-SAX.characters(README - Microsoft FrontPage 2, 51)
+SAX.characters(README - Microsoft FrontPage 2, 30)
 SAX.endElement(title)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(meta, name='Microsoft Theme', content='none')
 SAX.endElement(meta)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.error: Unexpected end tag : head
-SAX.characters(
+SAX.endElement(head)
+SAX.ignorableWhitespace(
 
 , 2)
-SAX.endElement(p)
 SAX.startElement(body)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(font, face='Verdana')
 SAX.characters(
 , 1)
 SAX.startElement(h1)
 SAX.startElement(a, name='top')
-SAX.characters(Microsoft FrontPage 2000 Serve, 48)
+SAX.characters(Microsoft FrontPage 2000 Serve, 30)
 SAX.endElement(a)
 SAX.endElement(h1)
 SAX.characters(
@@ -50,8 +44,8 @@
 , 2)
 SAX.startElement(font, size='2')
 SAX.startElement(i)
-SAX.characters(© Copyright Microsoft Corpora, 40)
-SAX.characters( , 2)
+SAX.characters(&copy; Copyright Microsoft Cor, 26)
+SAX.characters(&nbsp;, 2)
 SAX.endElement(i)
 SAX.endElement(font)
 SAX.characters(
@@ -59,7 +53,7 @@
 
 , 3)
 SAX.startElement(p)
-SAX.characters(The FrontPage Server Extension, 88)
+SAX.characters(The FrontPage Server Extension, 30)
 SAX.endElement(p)
 SAX.startElement(ul)
 SAX.characters(
@@ -75,7 +69,7 @@
 SAX.characters(
   , 3)
 SAX.startElement(li)
-SAX.characters(Browse-time FrontPage web func, 39)
+SAX.characters(Browse-time FrontPage web func, 30)
 SAX.endElement(li)
 SAX.characters(
 , 1)
@@ -86,7 +80,7 @@
 , 3)
 SAX.startElement(h2)
 SAX.characters(Contents, 8)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.endElement(h2)
 SAX.characters(
 
@@ -104,7 +98,7 @@
 SAX.characters(
 , 1)
 SAX.startElement(p)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.endElement(p)
 SAX.characters(
 , 1)
@@ -121,7 +115,7 @@
 
 , 2)
 SAX.startElement(p)
-SAX.characters(This section provides compleme, 136)
+SAX.characters(This section provides compleme, 30)
 SAX.endElement(p)
 SAX.characters(
 
@@ -135,14 +129,14 @@
 SAX.characters(
 , 1)
 SAX.startElement(a, href='#upgrading')
-SAX.characters(Upgrading from previous versio, 62)
+SAX.characters(Upgrading from previous versio, 30)
 SAX.endElement(a)
 SAX.startElement(br)
 SAX.endElement(br)
 SAX.characters(
 , 1)
 SAX.startElement(a, href='#executables')
-SAX.characters(Uploading files into executabl, 39)
+SAX.characters(Uploading files into executabl, 30)
 SAX.endElement(a)
 SAX.endElement(p)
 SAX.characters(
@@ -169,23 +163,22 @@
 
 , 2)
 SAX.startElement(p)
-SAX.characters(You need to take some special , 360)
+SAX.characters(You need to take some special , 30)
 SAX.endElement(p)
 SAX.characters(
 
 
 , 3)
 SAX.endElement(font)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(blockquote)
 SAX.characters(
   , 3)
 SAX.startElement(font, face='Courier New')
 SAX.characters(
 ResourceConfig /dev/null, 25)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.startElement(br)
 SAX.endElement(br)
 SAX.characters(
@@ -194,8 +187,7 @@
 SAX.characters(
 , 1)
 SAX.endElement(blockquote)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(font, face='Verdana')
 SAX.characters(
@@ -203,13 +195,13 @@
 
 , 3)
 SAX.startElement(p)
-SAX.characters(If you have some settings stor, 90)
+SAX.characters(If you have some settings stor, 30)
 SAX.endElement(p)
 SAX.characters(
 
 , 2)
 SAX.startElement(p)
-SAX.characters(You must stop and restart the , 86)
+SAX.characters(You must stop and restart the , 30)
 SAX.endElement(p)
 SAX.characters(
 
@@ -230,26 +222,26 @@
 , 4)
 SAX.startElement(h3)
 SAX.startElement(a, name='upgrading')
-SAX.characters(Upgrading from previous versio, 62)
+SAX.characters(Upgrading from previous versio, 30)
 SAX.endElement(a)
 SAX.endElement(h3)
 SAX.characters(
 
 , 2)
 SAX.startElement(p)
-SAX.characters(Custom entries in frontpage.cn, 67)
+SAX.characters(Custom entries in frontpage.cn, 30)
 SAX.endElement(p)
 SAX.characters(
 
 , 2)
 SAX.startElement(p)
-SAX.characters(When you install FrontPage 200, 359)
+SAX.characters(When you install FrontPage 200, 30)
 SAX.endElement(p)
 SAX.characters(
 
 , 2)
 SAX.startElement(p)
-SAX.characters(Do not overwrite the FrontPage, 141)
+SAX.characters(Do not overwrite the FrontPage, 30)
 SAX.endElement(p)
 SAX.characters(
 
@@ -270,7 +262,7 @@
 , 4)
 SAX.startElement(h3)
 SAX.startElement(a, name='executables')
-SAX.characters(Uploading files into executabl, 39)
+SAX.characters(Uploading files into executabl, 30)
 SAX.endElement(a)
 SAX.endElement(h3)
 SAX.characters(
@@ -278,15 +270,15 @@
 
 , 3)
 SAX.startElement(p)
-SAX.characters(After upgrading to FrontPage 2, 385)
+SAX.characters(After upgrading to FrontPage 2, 30)
 SAX.endElement(p)
 SAX.characters( 
 
 , 3)
 SAX.startElement(p)
-SAX.characters(To allow FrontPage authors to , 249)
+SAX.characters(To allow FrontPage authors to , 30)
 SAX.startElement(a, href='http://officeupdate.microsoft.com/frontpage/wpp/serk/')
-SAX.characters(http://officeupdate.microsoft., 53)
+SAX.characters(http://officeupdate.microsoft., 30)
 SAX.endElement(a)
 SAX.characters(., 1)
 SAX.endElement(p)
@@ -323,7 +315,7 @@
 
 , 2)
 SAX.startElement(p)
-SAX.characters(This section lists sources of , 85)
+SAX.characters(This section lists sources of , 30)
 SAX.endElement(p)
 SAX.characters(
 
@@ -337,7 +329,7 @@
 SAX.characters(
 , 1)
 SAX.startElement(a, href='#serkupdate')
-SAX.characters(Server Extensions Resource Kit, 37)
+SAX.characters(Server Extensions Resource Kit, 30)
 SAX.endElement(a)
 SAX.startElement(br)
 SAX.endElement(br)
@@ -371,13 +363,13 @@
 
 , 2)
 SAX.startElement(p)
-SAX.characters(The FrontPage 2000 Server Exte, 339)
+SAX.characters(The FrontPage 2000 Server Exte, 30)
 SAX.endElement(p)
 SAX.characters(
 
 , 2)
 SAX.startElement(p)
-SAX.characters(The Server Extensions Resource, 312)
+SAX.characters(The Server Extensions Resource, 30)
 SAX.endElement(p)
 SAX.characters(
 
@@ -395,16 +387,16 @@
 , 3)
 SAX.startElement(h3)
 SAX.startElement(a, name='serkupdate')
-SAX.characters(Server Extensions Resource Kit, 37)
+SAX.characters(Server Extensions Resource Kit, 30)
 SAX.endElement(a)
 SAX.endElement(h3)
 SAX.characters(
 
 , 2)
 SAX.startElement(p)
-SAX.characters(For updated information about , 157)
+SAX.characters(For updated information about , 30)
 SAX.startElement(a, href='http://officeupdate.microsoft.com/frontpage/wpp/serk/')
-SAX.characters(http://officeupdate.microsoft., 53)
+SAX.characters(http://officeupdate.microsoft., 30)
 SAX.endElement(a)
 SAX.characters(., 1)
 SAX.endElement(p)
@@ -432,13 +424,13 @@
 
 , 2)
 SAX.startElement(p)
-SAX.characters(For further technical informat, 254)
+SAX.characters(For further technical informat, 30)
 SAX.error: htmlParseEntityRef: no name
-SAX.characters(&, 1)
+SAX.characters(&amp;, 1)
 SAX.characters( troubleshooters to find 
-fast, 302)
+fast, 30)
 SAX.startElement(a, href='http://support.microsoft.com/support/')
-SAX.characters(http://support.microsoft.com/s, 37)
+SAX.characters(http://support.microsoft.com/s, 30)
 SAX.endElement(a)
 SAX.characters(., 1)
 SAX.endElement(p)
@@ -457,20 +449,17 @@
 
 , 3)
 SAX.startElement(p)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.endElement(p)
 SAX.characters(  
 
 , 4)
 SAX.endElement(font)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.endElement(body)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.endElement(body)
 SAX.endElement(html)
 SAX.ignorableWhitespace(
diff --git a/result/HTML/liclose.html.sax b/result/HTML/liclose.html.sax
index 519688f..5e37aa8 100644
--- a/result/HTML/liclose.html.sax
+++ b/result/HTML/liclose.html.sax
@@ -8,25 +8,18 @@
 , 1)
 SAX.endElement(p)
 SAX.startElement(head)
-SAX.endElement(head)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
   , 3)
-SAX.endElement(p)
 SAX.startElement(title)
 SAX.endElement(title)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.error: Unexpected end tag : head
-SAX.characters(
+SAX.endElement(head)
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(body)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(ul)
 SAX.characters(
 , 1)
@@ -35,14 +28,12 @@
 , 11)
 SAX.endElement(li)
 SAX.startElement(li)
-SAX.characters(Second item, closes the first , 34)
+SAX.characters(Second item, closes the first , 30)
 SAX.endElement(li)
 SAX.endElement(ul)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 
 , 2)
-SAX.endElement(p)
 SAX.endElement(body)
 SAX.endElement(body)
 SAX.endElement(html)
diff --git a/result/HTML/reg1.html.sax b/result/HTML/reg1.html.sax
index 135cb57..516c022 100644
--- a/result/HTML/reg1.html.sax
+++ b/result/HTML/reg1.html.sax
@@ -7,43 +7,32 @@
 , 1)
 SAX.endElement(p)
 SAX.startElement(head)
-SAX.endElement(head)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(title)
 SAX.characters(Regression test 1, 17)
 SAX.endElement(title)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.error: Unexpected end tag : head
-SAX.characters(
+SAX.endElement(head)
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(body)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(h1)
 SAX.characters(Regression test 1, 17)
 SAX.endElement(h1)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(p)
 SAX.characters(
 Ok file no problem
 , 20)
 SAX.endElement(p)
 SAX.endElement(body)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.endElement(body)
 SAX.endElement(html)
 SAX.ignorableWhitespace(
diff --git a/result/HTML/reg2.html.sax b/result/HTML/reg2.html.sax
index 0db1e53..79a0d27 100644
--- a/result/HTML/reg2.html.sax
+++ b/result/HTML/reg2.html.sax
@@ -7,33 +7,24 @@
 , 1)
 SAX.endElement(p)
 SAX.startElement(head)
-SAX.endElement(head)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(title)
 SAX.characters(Regression test 2, 17)
 SAX.endElement(title)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.error: Unexpected end tag : head
-SAX.characters(
+SAX.endElement(head)
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(body)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(h1)
 SAX.characters(Regression test 2, 17)
 SAX.endElement(h1)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(p)
 SAX.characters(
 Autoclose of tag P
@@ -45,10 +36,8 @@
 , 20)
 SAX.endElement(p)
 SAX.endElement(body)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.endElement(body)
 SAX.endElement(html)
 SAX.ignorableWhitespace(
diff --git a/result/HTML/reg3.html.sax b/result/HTML/reg3.html.sax
index 75cd2cc..441a9e2 100644
--- a/result/HTML/reg3.html.sax
+++ b/result/HTML/reg3.html.sax
@@ -7,33 +7,24 @@
 , 1)
 SAX.endElement(p)
 SAX.startElement(head)
-SAX.endElement(head)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(title)
 SAX.characters(Regression test 3, 17)
 SAX.endElement(title)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.error: Unexpected end tag : head
-SAX.characters(
+SAX.endElement(head)
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(body)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(h1)
 SAX.characters(Regression test 3, 17)
 SAX.endElement(h1)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(p)
 SAX.characters(
 Autoclose of tag P
@@ -41,20 +32,16 @@
 SAX.endElement(p)
 SAX.startElement(hr)
 SAX.endElement(hr)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(p)
 SAX.characters(
 Ok file no problem
 , 20)
 SAX.endElement(p)
 SAX.endElement(body)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.endElement(body)
 SAX.endElement(html)
 SAX.ignorableWhitespace(
diff --git a/result/HTML/reg4.html.sax b/result/HTML/reg4.html.sax
index 832fe69..d2d386b 100644
--- a/result/HTML/reg4.html.sax
+++ b/result/HTML/reg4.html.sax
@@ -7,33 +7,24 @@
 , 1)
 SAX.endElement(p)
 SAX.startElement(head)
-SAX.endElement(head)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(title)
 SAX.characters(Regression test 4, 17)
 SAX.endElement(title)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.error: Unexpected end tag : head
-SAX.characters(
+SAX.endElement(head)
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(body)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(h1)
 SAX.characters(Regression test 4, 17)
 SAX.endElement(h1)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(p)
 SAX.characters(
 Wrong close of tag P
@@ -41,19 +32,14 @@
 SAX.endElement(p)
 SAX.startElement(hr)
 SAX.endElement(hr)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
-SAX.startElement(p)
-SAX.characters(
+SAX.error: Unexpected end tag : p
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.endElement(body)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.endElement(body)
 SAX.endElement(html)
 SAX.ignorableWhitespace(
diff --git a/result/HTML/test2.html.sax b/result/HTML/test2.html.sax
index d457ed0..351080a 100644
--- a/result/HTML/test2.html.sax
+++ b/result/HTML/test2.html.sax
@@ -3,25 +3,20 @@
 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.endElement(head)
-SAX.startElement(body)
-SAX.startElement(p)
-SAX.characters( , 1)
-SAX.endElement(p)
+SAX.ignorableWhitespace( , 1)
 SAX.startElement(title)
 SAX.characters(Linux Today, 11)
 SAX.endElement(title)
-SAX.error: Unexpected end tag : head
+SAX.endElement(head)
+SAX.startElement(body)
 SAX.startElement(p)
 SAX.characters(
 , 1)
 SAX.endElement(p)
 SAX.startElement(body, bgcolor='White', link='Blue', text='Black', VLINK='Black', ALINK='Red')
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 
 , 2)
-SAX.endElement(p)
 SAX.startElement(center)
 SAX.characters(
 , 1)
@@ -138,19 +133,15 @@
 SAX.characters(
 , 1)
 SAX.endElement(center)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(p)
 SAX.characters(
 , 1)
 SAX.endElement(p)
 SAX.endElement(body)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.endElement(body)
 SAX.endElement(html)
 SAX.ignorableWhitespace(
diff --git a/result/HTML/test3.html.sax b/result/HTML/test3.html.sax
index 8546efd..f88b7df 100644
--- a/result/HTML/test3.html.sax
+++ b/result/HTML/test3.html.sax
@@ -7,34 +7,29 @@
 , 2)
 SAX.endElement(p)
 SAX.startElement(head)
-SAX.endElement(head)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 2)
 SAX.startElement(base, target='contents')
 SAX.endElement(base)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 2)
-SAX.error: Unexpected end tag : head
-SAX.characters(
+SAX.endElement(head)
+SAX.ignorableWhitespace(
 , 2)
 SAX.startElement(a, name='ProblemDomain.Package')
 SAX.startElement(h2)
-SAX.characters(Component Package diagram Prob, 39)
+SAX.characters(Component Package diagram Prob, 30)
 SAX.endElement(h2)
 SAX.characters(
 , 2)
 SAX.endElement(a)
-SAX.endElement(p)
 SAX.startElement(p)
 SAX.endElement(p)
 SAX.startElement(hr)
 SAX.endElement(hr)
 SAX.error: Unexpected end tag : p
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 2)
-SAX.endElement(p)
 SAX.startElement(dl)
 SAX.characters(
 , 2)
@@ -60,25 +55,21 @@
 SAX.endElement(b)
 SAX.endElement(dt)
 SAX.startElement(dd)
-SAX.characters(The Problem Domain package is , 59)
+SAX.characters(The Problem Domain package is , 30)
 SAX.startElement(dd)
-SAX.characters(Interface, thats stores and ma, 58)
+SAX.characters(Interface, thats stores and ma, 30)
 SAX.endElement(dd)
 SAX.endElement(dd)
 SAX.endElement(dl)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 2)
-SAX.endElement(p)
 SAX.startElement(p)
 SAX.endElement(p)
 SAX.startElement(hr)
 SAX.endElement(hr)
 SAX.error: Unexpected end tag : p
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 2)
-SAX.endElement(p)
 SAX.startElement(dl)
 SAX.characters(
 
@@ -174,11 +165,9 @@
 SAX.characters(
 , 2)
 SAX.endElement(dl)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 
 , 4)
-SAX.endElement(p)
 SAX.startElement(h4)
 SAX.startElement(b)
 SAX.characters(Links, 5)
@@ -186,10 +175,8 @@
 SAX.endElement(b)
 SAX.endElement(h4)
 SAX.error: Unexpected end tag : b
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 2)
-SAX.endElement(p)
 SAX.startElement(ul)
 SAX.startElement(li)
 SAX.startElement(b)
@@ -200,16 +187,12 @@
 SAX.endElement(a)
 SAX.endElement(li)
 SAX.endElement(ul)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 2)
-SAX.endElement(p)
 SAX.startElement(dir)
 SAX.endElement(dir)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 2)
-SAX.endElement(p)
 SAX.startElement(ul)
 SAX.startElement(li)
 SAX.startElement(b)
@@ -220,16 +203,12 @@
 SAX.endElement(a)
 SAX.endElement(li)
 SAX.endElement(ul)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 2)
-SAX.endElement(p)
 SAX.startElement(dir)
 SAX.endElement(dir)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 2)
-SAX.endElement(p)
 SAX.startElement(ul)
 SAX.startElement(li)
 SAX.startElement(b)
@@ -240,16 +219,12 @@
 SAX.endElement(a)
 SAX.endElement(li)
 SAX.endElement(ul)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 2)
-SAX.endElement(p)
 SAX.startElement(dir)
 SAX.endElement(dir)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 2)
-SAX.endElement(p)
 SAX.endElement(body)
 SAX.endElement(html)
 SAX.ignorableWhitespace(
diff --git a/result/HTML/wired.html.sax b/result/HTML/wired.html.sax
index d67e0bb..3760a64 100644
--- a/result/HTML/wired.html.sax
+++ b/result/HTML/wired.html.sax
@@ -4,15 +4,13 @@
 SAX.startElement(html)
 SAX.startElement(head)
 SAX.startElement(title)
-SAX.characters(Top Stories News from Wired Ne, 32)
+SAX.characters(Top Stories News from Wired Ne, 30)
 SAX.endElement(title)
 SAX.endElement(head)
 SAX.startElement(body, bgcolor='#FFFFFF', text='#000000', link='#333399', vlink='#660066', alink='#666699')
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 
 , 2)
-SAX.endElement(p)
 SAX.startElement(table, border='0', width='600', cellspacing='0', cellpadding='0')
 SAX.characters(
   , 3)
@@ -27,7 +25,7 @@
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
-SAX.startElement(form, METHOD='GET', ACTION='http://nsads.hotwired.com/event.ng/Type=click&ProfileID=9688&RunID=14074&AdID=22584&GroupID=1&FamilyID=2684&TagValues=8.25.156.159.166.171.172.174.179.180.181.182.183.196.197.199.208.389.412.436.2041.6750.78456.79630.81880&Redirect=http://www.springstreet.com/aa/citysearch.htm', id='form1', name='form1')
+SAX.startElement(form, METHOD='GET', ACTION='http://nsads.hotwired.com/event.ng/Type=click&amp;ProfileID=9688&amp;RunID=14074&amp;AdID=22584&amp;GroupID=1&amp;FamilyID=2684&amp;TagValues=8.25.156.159.166.171.172.174.179.180.181.182.183.196.197.199.208.389.412.436.2041.6750.78456.79630.81880&amp;Redirect=http://www.springstreet.com/aa/citysearch.htm', id='form1', name='form1')
 SAX.characters(
 , 2)
 SAX.startElement(tr)
@@ -306,7 +304,7 @@
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
-SAX.startElement(a, href='http://nsads.hotwired.com/event.ng/Type=click&ProfileID=5597&RunID=17167&AdID=22588&GroupID=1&FamilyID=3228&TagValues=8.25.159.171.172.174.179.180.181.182.183.196.197.199.208.241.389.412.436.2035.6749.6750.70367.78456.79630.81880&Redirect=http:%2F%2Fwww.hp.com%2Fgo%2Foriginal%20', TARGET='_top')
+SAX.startElement(a, href='http://nsads.hotwired.com/event.ng/Type=click&amp;ProfileID=5597&amp;RunID=17167&amp;AdID=22588&amp;GroupID=1&amp;FamilyID=3228&amp;TagValues=8.25.159.171.172.174.179.180.181.182.183.196.197.199.208.241.389.412.436.2035.6749.6750.70367.78456.79630.81880&amp;Redirect=http:%2F%2Fwww.hp.com%2Fgo%2Foriginal%20', TARGET='_top')
 SAX.startElement(img, src='http://static.wired.com/advertising/blipverts/hp_colorinkjet/hp_970c_120x60_6.gif', BORDER='1', height='60', width='120', alt='True to the Original')
 SAX.endElement(img)
 SAX.endElement(a)
@@ -317,22 +315,20 @@
 SAX.characters(
 , 1)
 SAX.endElement(table)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 
 , 2)
 SAX.comment( WIRED NEWS header )
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
 SAX.comment( CMD_HOST = scoop.hotwired.com )
-SAX.characters(
+SAX.ignorableWhitespace(
 
 , 2)
 SAX.startElement(a, name='#')
 SAX.endElement(a)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.startElement(table, border='0', width='600', cellspacing='0', cellpadding='0')
 SAX.characters(
 
@@ -379,13 +375,13 @@
 SAX.startElement(br)
 SAX.endElement(br)
 SAX.startElement(font, size='1', face='Verdana, Arial, Geneva, sans-serif', color='#FFFFFF')
-SAX.characters( , 2)
-SAX.characters( , 2)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
+SAX.characters(&nbsp;, 2)
+SAX.characters(&nbsp;, 2)
 SAX.startElement(b)
 SAX.characters(updated 10:15 a.m., 18)
-SAX.characters( , 2)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(15.Oct.99.PDT, 13)
 SAX.endElement(b)
 SAX.endElement(font)
@@ -446,7 +442,7 @@
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
-SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&Filter=docs_filter.hts&ResultTemplate=vignette.hts&Collection=vignette&QueryMode=Internet&Query=', selected)
+SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&amp;Filter=docs_filter.hts&amp;ResultTemplate=vignette.hts&amp;Collection=vignette&amp;QueryMode=Internet&amp;Query=', selected)
 SAX.characters(Wired News, 10)
 SAX.endElement(option)
 SAX.characters(
@@ -456,7 +452,7 @@
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
-SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&Filter=docs_filter.hts&ResultTemplate=webmonkey.hts&Collection=webmonkey&QueryMode=Internet&Query=')
+SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&amp;Filter=docs_filter.hts&amp;ResultTemplate=webmonkey.hts&amp;Collection=webmonkey&amp;QueryMode=Internet&amp;Query=')
 SAX.characters(Webmonkey, 9)
 SAX.endElement(option)
 SAX.characters(
@@ -466,7 +462,7 @@
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
-SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?collection=webmonkey_guides&Action=FilterSearch&filter=docs_filter.hts&ResultTemplate=webmonkey_guides.hts&QueryMode=Internet&Query=')
+SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?collection=webmonkey_guides&amp;Action=FilterSearch&amp;filter=docs_filter.hts&amp;ResultTemplate=webmonkey_guides.hts&amp;QueryMode=Internet&amp;Query=')
 SAX.characters(Webmonkey Guides, 16)
 SAX.endElement(option)
 SAX.characters(
@@ -476,7 +472,7 @@
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
-SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?collection=hotwired&Action=FilterSearch&filter=docs_filter.hts&ResultTemplate=hotwired_archive.hts&QueryMode=Internet&Query=')
+SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?collection=hotwired&amp;Action=FilterSearch&amp;filter=docs_filter.hts&amp;ResultTemplate=hotwired_archive.hts&amp;QueryMode=Internet&amp;Query=')
 SAX.characters(HotWired Archives, 17)
 SAX.endElement(option)
 SAX.characters(
@@ -486,7 +482,7 @@
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
-SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&Filter=docs_filter.hts&ResultTemplate=magazine.hts&Collection=magazine&QueryMode=Internet&Query=')
+SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&amp;Filter=docs_filter.hts&amp;ResultTemplate=magazine.hts&amp;Collection=magazine&amp;QueryMode=Internet&amp;Query=')
 SAX.characters(Wired Magazine, 14)
 SAX.endElement(option)
 SAX.characters(
@@ -496,7 +492,7 @@
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
-SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&Filter=docs_filter.hts&ResultTemplate=animation.hts&Collection=animation&QueryMode=Internet&Query=')
+SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&amp;Filter=docs_filter.hts&amp;ResultTemplate=animation.hts&amp;Collection=animation&amp;QueryMode=Internet&amp;Query=')
 SAX.characters(Animation Express, 17)
 SAX.endElement(option)
 SAX.characters( 
@@ -506,7 +502,7 @@
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
-SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?collection=suck&Action=FilterSearch&filter=docs_filter.hts&ResultTemplate=suck.hts&QueryMode=Internet&Query=')
+SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?collection=suck&amp;Action=FilterSearch&amp;filter=docs_filter.hts&amp;ResultTemplate=suck.hts&amp;QueryMode=Internet&amp;Query=')
 SAX.characters(Suck.com, 8)
 SAX.endElement(option)
 SAX.characters(
@@ -516,7 +512,7 @@
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
-SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?collection=uber_hotwired&Action=FilterSearch&filter=docs_filter.hts&ResultTemplate=uber_hotwired.hts&QueryMode=Internet&Query=')
+SAX.startElement(option, value='http://search.hotwired.com/search97/s97.vts?collection=uber_hotwired&amp;Action=FilterSearch&amp;filter=docs_filter.hts&amp;ResultTemplate=uber_hotwired.hts&amp;QueryMode=Internet&amp;Query=')
 SAX.characters(All of HotWired, 15)
 SAX.endElement(option)
 SAX.characters(
@@ -529,8 +525,8 @@
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
-SAX.startElement(option, value='http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&OPs=MDRTP&MT=')
-SAX.characters(The Web -> HotBot, 17)
+SAX.startElement(option, value='http://www.hotbot.com/?SM=MC&amp;DV=0&amp;LG=any&amp;RD=RG&amp;DC=10&amp;DE=2&amp;_v=2&amp;OPs=MDRTP&amp;MT=')
+SAX.characters(The Web -&gt; HotBot, 17)
 SAX.endElement(option)
 SAX.characters(
 , 1)
@@ -578,18 +574,16 @@
 SAX.characters(
 , 1)
 SAX.endElement(table)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
 SAX.comment( end WIRED NEWS header )
-SAX.characters(
+SAX.ignorableWhitespace(
 
 , 2)
 SAX.comment( begin upper left side Navigation )
-SAX.characters(
+SAX.ignorableWhitespace(
 
 , 2)
-SAX.endElement(p)
 SAX.startElement(table, border='0', cellpadding='3', cellspacing='0', align='LEFT', bgcolor='#FFFFFF')
 SAX.characters(
   , 3)
@@ -781,7 +775,7 @@
 , 3)
 SAX.startElement(input, type='TEXT', name='from', size='10', value='enter email')
 SAX.endElement(input)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(
 , 1)
 SAX.error: Opening and ending tag mismatch: td and form
@@ -851,7 +845,7 @@
 SAX.startElement(form, method='get', action='http://r.wired.com/r/10020/http://stocks.wired.com/stocks_quotes.asp')
 SAX.startElement(input, type='TEXT', name='Symbol', size='12')
 SAX.endElement(input)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.startElement(input, type='SUBMIT', name='submit', value='GO')
 SAX.endElement(input)
 SAX.endElement(form)
@@ -906,7 +900,7 @@
 SAX.endElement(area)
 SAX.characters(
         , 9)
-SAX.startElement(area, SHAPE='RECT', ALT='GetSmart's MortgageFinder', COORDS='0,31,69,55', HREF='http://r.wired.com/r/294/http://www.getsmartinc.com/mortgage/HomeBanner?BANNERNAME=www.getsmartinc.com/mwired001m6075x25')
+SAX.startElement(area, SHAPE='RECT', ALT='GetSmart&apos;s MortgageFinder', COORDS='0,31,69,55', HREF='http://r.wired.com/r/294/http://www.getsmartinc.com/mortgage/HomeBanner?BANNERNAME=www.getsmartinc.com/mwired001m6075x25')
 SAX.endElement(area)
 SAX.endElement(map)
 SAX.characters(
@@ -1057,7 +1051,7 @@
   , 16)
 SAX.startElement(option, value='2800')
 SAX.characters( Bargain Books
-               , 40)
+               , 30)
 SAX.startElement(option, value='4')
 SAX.characters(Other 
 
@@ -1099,7 +1093,7 @@
 
 , 2)
 SAX.error: htmlParseEntityRef: expecting ';'
-SAX.startElement(img, SRC='http://barnesandnoble.bfast.com/booklink/serve?sourceid=383471&is_search=Y', border='0', align='top')
+SAX.startElement(img, SRC='http://barnesandnoble.bfast.com/booklink/serve?sourceid=383471&amp;is_search=Y', border='0', align='top')
 SAX.endElement(img)
 SAX.characters(
 , 1)
@@ -1111,7 +1105,7 @@
 SAX.endElement(td)
 SAX.characters(
                  
-           , 35)
+           , 30)
 SAX.endElement(tr)
 SAX.characters(
                 , 17)
@@ -1471,18 +1465,16 @@
 
 , 2)
 SAX.endElement(table)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 
 , 2)
 SAX.comment( end lower left side Navigation )
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
 SAX.comment( CONTENT TABLE )
-SAX.characters(
+SAX.ignorableWhitespace(
 
 , 2)
-SAX.endElement(p)
 SAX.startElement(table, border='0', width='447', cellspacing='0', cellpadding='0', bordercolor='#66FF00')
 SAX.characters(
  , 2)
@@ -1540,9 +1532,9 @@
 SAX.startElement(font, size='1', face='Verdana, Arial, Geneva, sans-serif', color='#FF0000')
 SAX.characters(8:15 a.m., 9)
 SAX.endElement(font)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2')
-SAX.characters(The city council approves a pl, 180)
+SAX.characters(The city council approves a pl, 30)
 SAX.endElement(font)
 SAX.startElement(br)
 SAX.endElement(br)
@@ -1550,7 +1542,7 @@
 SAX.startElement(i)
 SAX.startElement(a, href='/news/politics/0,1283,,00.html')
 SAX.characters(in, 2)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(Politics, 8)
 SAX.endElement(a)
 SAX.endElement(i)
@@ -1567,7 +1559,7 @@
 SAX.characters(
           , 11)
 SAX.startElement(td, bgcolor='#000000')
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.endElement(td)
 SAX.characters(
           , 11)
@@ -1575,7 +1567,7 @@
 SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#FFFFFF')
 SAX.startElement(b)
 SAX.characters(HITS , 5)
-SAX.characters(&, 1)
+SAX.characters(&amp;, 1)
 SAX.characters( MISC., 6)
 SAX.endElement(b)
 SAX.endElement(font)
@@ -1589,7 +1581,7 @@
 SAX.characters(
           , 11)
 SAX.startElement(td)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.endElement(td)
 SAX.characters(
           , 11)
@@ -1623,7 +1615,7 @@
 SAX.startElement(a, href='/news/commentarySection/0,1292,31926,00.html')
 SAX.characters(Rants , 6)
 SAX.error: htmlParseEntityRef: no name
-SAX.characters(&, 1)
+SAX.characters(&amp;, 1)
 SAX.characters( Raves, 6)
 SAX.endElement(a)
 SAX.endElement(b)
@@ -1632,7 +1624,7 @@
 SAX.endElement(br)
 SAX.startElement(font, size='2', face='Arial, Helvetica, sans-serif')
 SAX.startElement(font, size='1', face='Arial, Geneva, sans-serif', color='#000000')
-SAX.characters(Readers on Apple's G4 ... AOL', 59)
+SAX.characters(Readers on Apple's G4 ... AOL', 30)
 SAX.endElement(font)
 SAX.startElement(br)
 SAX.endElement(br)
@@ -1656,7 +1648,7 @@
 SAX.characters( 
 , 2)
 SAX.startElement(td, align='left', bgcolor='#000000')
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.endElement(td)
 SAX.characters( 
 , 2)
@@ -1677,7 +1669,7 @@
 SAX.characters( 
 , 2)
 SAX.startElement(td)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.endElement(td)
 SAX.characters(
 , 1)
@@ -1962,8 +1954,8 @@
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.error: htmlParseEntityRef: expecting ';'
 SAX.startElement(a, href='http://r.wired.com/r/wn_is_r_ssec/http://ad.doubleclick.net/clk;653163;3599571;s?http://www.sprintbiz.com/s
-ervlet/appservlet?from=/wired/sprint/&template=/security/security.html&SITE=
-wired.com&BANNER=Sprint', style='text-decoration:none')
+ervlet/appservlet?from=/wired/sprint/&amp;template=/security/security.html&amp;SITE=
+wired.com&amp;BANNER=Sprint', style='text-decoration:none')
 SAX.startElement(font, color='#000000')
 SAX.characters(Sprint, 6)
 SAX.error: Opening and ending tag mismatch: a and font
@@ -2011,7 +2003,7 @@
 SAX.endElement(font)
 SAX.startElement(br)
 SAX.endElement(br)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.startElement(br)
 SAX.endElement(br)
 SAX.characters(
@@ -2046,7 +2038,7 @@
 SAX.characters( 
                   , 20)
 SAX.startElement(td, bgcolor='#000000')
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.endElement(td)
 SAX.characters(
           , 11)
@@ -2067,7 +2059,7 @@
 SAX.characters( 
           , 12)
 SAX.startElement(td)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.endElement(td)
 SAX.characters(
           , 11)
@@ -2087,7 +2079,7 @@
 , 1)
 SAX.startElement(font, size='2', face='Arial, Helvetica, sans-serif', color='#000000')
 SAX.startElement(b)
-SAX.characters(Führer Furor, 13)
+SAX.characters(F&uuml;hrer Furor, 13)
 SAX.endElement(b)
 SAX.endElement(font)
 SAX.startElement(br)
@@ -2095,14 +2087,14 @@
 SAX.startElement(font, size='1', face='Arial, Geneva, sans-serif', color='#000000')
 SAX.startElement(p)
 SAX.characters(
-Contruction workers in Berli, 637)
+Contruction workers in Berli, 30)
 SAX.startElement(br)
 SAX.endElement(br)
 SAX.endElement(p)
 SAX.startElement(li)
 SAX.characters(More from , 10)
 SAX.error: htmlParseEntityRef: expecting ';'
-SAX.startElement(a, href='http://www.lycos.com/news/flash/hitlerbunker.html?v=wn1015&lpv=1')
+SAX.startElement(a, href='http://www.lycos.com/news/flash/hitlerbunker.html?v=wn1015&amp;lpv=1')
 SAX.characters(Lycos, 5)
 SAX.endElement(a)
 SAX.endElement(li)
@@ -2128,7 +2120,7 @@
 
 , 3)
 SAX.startElement(font, size='1')
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.startElement(br)
 SAX.endElement(br)
 SAX.endElement(font)
@@ -2174,9 +2166,9 @@
 SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1')
 SAX.characters(10:15 a.m., 10)
 SAX.endElement(font)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2')
-SAX.characters(The Dow and Nasdaq suffer size, 180)
+SAX.characters(The Dow and Nasdaq suffer size, 30)
 SAX.endElement(font)
 SAX.startElement(br)
 SAX.endElement(br)
@@ -2184,7 +2176,7 @@
 SAX.startElement(i)
 SAX.startElement(a, href='/news/reuters/0,1349,,00.html')
 SAX.characters(in, 2)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(Reuters, 7)
 SAX.endElement(a)
 SAX.endElement(i)
@@ -2206,9 +2198,9 @@
 SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1')
 SAX.characters(9:10 a.m., 9)
 SAX.endElement(font)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2')
-SAX.characters(The bulls and the bears are in, 128)
+SAX.characters(The bulls and the bears are in, 30)
 SAX.endElement(font)
 SAX.startElement(br)
 SAX.endElement(br)
@@ -2216,7 +2208,7 @@
 SAX.startElement(i)
 SAX.startElement(a, href='/news/reuters/0,1349,,00.html')
 SAX.characters(in, 2)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(Reuters, 7)
 SAX.endElement(a)
 SAX.endElement(i)
@@ -2229,7 +2221,7 @@
 SAX.startElement(font, face='Arial, Helvetica, sans-serif', size='3')
 SAX.startElement(b)
 SAX.startElement(a, href='/news/politics/0,1283,31533,00.html')
-SAX.characters('Want a Loan? What's Your Race, 32)
+SAX.characters('Want a Loan? What's Your Race, 30)
 SAX.endElement(a)
 SAX.endElement(b)
 SAX.endElement(font)
@@ -2238,9 +2230,9 @@
 SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1')
 SAX.characters(3:00 a.m., 9)
 SAX.endElement(font)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2')
-SAX.characters(The Federal Reserve is in the , 184)
+SAX.characters(The Federal Reserve is in the , 30)
 SAX.endElement(font)
 SAX.startElement(br)
 SAX.endElement(br)
@@ -2248,7 +2240,7 @@
 SAX.startElement(i)
 SAX.startElement(a, href='/news/politics/0,1283,,00.html')
 SAX.characters(in, 2)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(Politics, 8)
 SAX.endElement(a)
 SAX.endElement(i)
@@ -2270,9 +2262,9 @@
 SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1')
 SAX.characters(3:00 a.m., 9)
 SAX.endElement(font)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2')
-SAX.characters(The struggle to come up with a, 171)
+SAX.characters(The struggle to come up with a, 30)
 SAX.endElement(font)
 SAX.startElement(br)
 SAX.endElement(br)
@@ -2280,7 +2272,7 @@
 SAX.startElement(i)
 SAX.startElement(a, href='/news/business/0,1367,,00.html')
 SAX.characters(in, 2)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(Business, 8)
 SAX.endElement(a)
 SAX.endElement(i)
@@ -2302,9 +2294,9 @@
 SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1')
 SAX.characters(3:00 a.m., 9)
 SAX.endElement(font)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2')
-SAX.characters(High-tech companies are notori, 186)
+SAX.characters(High-tech companies are notori, 30)
 SAX.endElement(font)
 SAX.startElement(br)
 SAX.endElement(br)
@@ -2312,7 +2304,7 @@
 SAX.startElement(i)
 SAX.startElement(a, href='/news/technology/0,1282,,00.html')
 SAX.characters(in, 2)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(Technology, 10)
 SAX.endElement(a)
 SAX.endElement(i)
@@ -2334,9 +2326,9 @@
 SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1')
 SAX.characters(3:00 a.m., 9)
 SAX.endElement(font)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2')
-SAX.characters(Windows NT sales remain strong, 165)
+SAX.characters(Windows NT sales remain strong, 30)
 SAX.endElement(font)
 SAX.startElement(br)
 SAX.endElement(br)
@@ -2344,7 +2336,7 @@
 SAX.startElement(i)
 SAX.startElement(a, href='/news/business/0,1367,,00.html')
 SAX.characters(in, 2)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(Business, 8)
 SAX.endElement(a)
 SAX.endElement(i)
@@ -2371,9 +2363,9 @@
 SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1')
 SAX.characters(3:00 a.m., 9)
 SAX.endElement(font)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2')
-SAX.characters(Different cancer patients need, 207)
+SAX.characters(Different cancer patients need, 30)
 SAX.endElement(font)
 SAX.startElement(br)
 SAX.endElement(br)
@@ -2381,7 +2373,7 @@
 SAX.startElement(i)
 SAX.startElement(a, href='/news/technology/0,1282,,00.html')
 SAX.characters(in, 2)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(Technology, 10)
 SAX.endElement(a)
 SAX.endElement(i)
@@ -2403,9 +2395,9 @@
 SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1')
 SAX.characters(3:00 a.m., 9)
 SAX.endElement(font)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2')
-SAX.characters(It's not just another round of, 196)
+SAX.characters(It's not just another round of, 30)
 SAX.endElement(font)
 SAX.startElement(br)
 SAX.endElement(br)
@@ -2413,7 +2405,7 @@
 SAX.startElement(i)
 SAX.startElement(a, href='/news/business/0,1367,,00.html')
 SAX.characters(in, 2)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(Business, 8)
 SAX.endElement(a)
 SAX.endElement(i)
@@ -2435,9 +2427,9 @@
 SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1')
 SAX.characters(3:00 a.m., 9)
 SAX.endElement(font)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2')
-SAX.characters(The far-flung databases on glo, 196)
+SAX.characters(The far-flung databases on glo, 30)
 SAX.endElement(font)
 SAX.startElement(br)
 SAX.endElement(br)
@@ -2445,7 +2437,7 @@
 SAX.startElement(i)
 SAX.startElement(a, href='/news/technology/0,1282,,00.html')
 SAX.characters(in, 2)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(Technology, 10)
 SAX.endElement(a)
 SAX.endElement(i)
@@ -2509,7 +2501,7 @@
 SAX.startElement(font, face='helvetica, arial', size='3')
 SAX.startElement(b)
 SAX.startElement(a, href='http://news.lycos.com/stories/TopNews/19991014RTNEWS-ARMS-TREATY.asp')
-SAX.characters(White House Lashes Out on Trea, 32)
+SAX.characters(White House Lashes Out on Trea, 30)
 SAX.endElement(a)
 SAX.endElement(b)
 SAX.endElement(font)
@@ -2559,7 +2551,7 @@
 SAX.startElement(font, face='helvetica, arial', size='3')
 SAX.startElement(b)
 SAX.startElement(a, href='http://www.nytimes.com/library/tech/99/10/biztech/articles/14free.html')
-SAX.characters(Much Is Free in the Wired Worl, 31)
+SAX.characters(Much Is Free in the Wired Worl, 30)
 SAX.endElement(a)
 SAX.endElement(b)
 SAX.endElement(font)
@@ -2596,7 +2588,7 @@
 SAX.startElement(font, face='helvetica, arial', size='3')
 SAX.startElement(b)
 SAX.startElement(a, href='http://www.msnbc.com/news/322926.asp')
-SAX.characters(Domain Owners Surrender Privac, 31)
+SAX.characters(Domain Owners Surrender Privac, 30)
 SAX.endElement(a)
 SAX.endElement(b)
 SAX.endElement(font)
@@ -2723,9 +2715,9 @@
 SAX.endElement(a)
 SAX.characters(
 , 1)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(|, 1)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(
 , 1)
 SAX.startElement(a, href='http://www.hotwired.com/jobs/')
@@ -2733,9 +2725,9 @@
 SAX.endElement(a)
 SAX.characters(
 , 1)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(|, 1)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(
 , 1)
 SAX.startElement(a, href='http://home.wired.com/advertising/')
@@ -2752,9 +2744,9 @@
 SAX.endElement(a)
 SAX.characters(
 , 1)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(|, 1)
-SAX.characters( , 2)
+SAX.characters(&nbsp;, 2)
 SAX.characters(
 , 1)
 SAX.startElement(a, href='http://www.wired.com/home/digital/privacy/')
@@ -2772,8 +2764,8 @@
 SAX.characters(Copyright, 9)
 SAX.endElement(a)
 SAX.characters( , 1)
-SAX.characters(©, 2)
-SAX.characters( 1994-99 Wired Digital Inc. Al, 48)
+SAX.characters(&copy;, 2)
+SAX.characters( 1994-99 Wired Digital Inc. Al, 30)
 SAX.endElement(font)
 SAX.characters(
 
@@ -2840,16 +2832,14 @@
 SAX.characters(
 , 1)
 SAX.endElement(table)
-SAX.startElement(p)
-SAX.characters(
+SAX.ignorableWhitespace(
 
 
 , 3)
 SAX.startElement(br)
 SAX.endElement(br)
-SAX.characters(
+SAX.ignorableWhitespace(
 , 1)
-SAX.endElement(p)
 SAX.endElement(body)
 SAX.startElement(body)
 SAX.startElement(p)
diff --git a/testHTML.c b/testHTML.c
index f998072..af088b5 100644
--- a/testHTML.c
+++ b/testHTML.c
@@ -368,8 +368,19 @@
     if (atts != NULL) {
         for (i = 0;(atts[i] != NULL);i++) {
 	    fprintf(stdout, ", %s", atts[i++]);
-	    if (atts[i] != NULL)
-	        fprintf(stdout, "='%s'", atts[i]);
+	    if (atts[i] != NULL) {
+		unsigned char output[40];
+		const unsigned char *att = atts[i];
+		int outlen, attlen;
+	        fprintf(stdout, "='");
+		while ((attlen = strlen((char*)att)) > 0) {
+		    outlen = sizeof output - 1;
+		    htmlEncodeEntities(output, &outlen, att, &attlen, '\'');
+		    fprintf(stdout, "%.*s", outlen, output);
+		    att += attlen;
+		}
+		fprintf(stdout, "'");
+	    }
 	}
     }
     fprintf(stdout, ")\n");
@@ -400,12 +411,11 @@
 void
 charactersDebug(void *ctx, const xmlChar *ch, int len)
 {
-    char output[40];
-    int i;
+    unsigned char output[40];
+    int outlen = 30;
 
-    for (i = 0;(i<len) && (i < 30);i++)
-	output[i] = ch[i];
-    output[i] = 0;
+    htmlEncodeEntities(output, &outlen, ch, &len, 0);
+    output[outlen] = 0;
 
     fprintf(stdout, "SAX.characters(%s, %d)\n", output, len);
 }
