diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index c0711a6..f45ae74 100644
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -648,7 +648,7 @@
 	ClearChildren();
 	delete [] charBuffer;
 
-#if 1
+#if 0
 	textPool.Trace( "text" );
 	elementPool.Trace( "element" );
 	commentPool.Trace( "comment" );
diff --git a/xmltest.cpp b/xmltest.cpp
index 88f8ac4..b2c2047 100644
--- a/xmltest.cpp
+++ b/xmltest.cpp
@@ -2,6 +2,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 
 #if defined( WIN32 )
 	#include <crtdbg.h>
@@ -10,6 +11,50 @@
 #endif
 
 using namespace tinyxml2;
+int gPass = 0;
+int gFail = 0;
+
+bool XmlTest (const char* testString, const char* expected, const char* found, bool noEcho )
+{
+	bool pass = !strcmp( expected, found );
+	if ( pass )
+		printf ("[pass]");
+	else
+		printf ("[fail]");
+
+	if ( noEcho )
+		printf (" %s\n", testString);
+	else
+		printf (" %s [%s][%s]\n", testString, expected, found);
+
+	if ( pass )
+		++gPass;
+	else
+		++gFail;
+	return pass;
+}
+
+
+bool XmlTest( const char* testString, int expected, int found, bool noEcho )
+{
+	bool pass = ( expected == found );
+	if ( pass )
+		printf ("[pass]");
+	else
+		printf ("[fail]");
+
+	if ( noEcho )
+		printf (" %s\n", testString);
+	else
+		printf (" %s [%d][%d]\n", testString, expected, found);
+
+	if ( pass )
+		++gPass;
+	else
+		++gFail;
+	return pass;
+}
+
 
 int main( int argc, const char* argv )
 {
@@ -75,11 +120,20 @@
 	}
 #endif
 	{
+		// Build:
+		//		<element>
+		//			<!--comment-->
+		//			<sub attrib="1" />
+		//			<sub attrib="2" />
+		//			<sub attrib="3" />
+		//		<element>
+
 		XMLDocument* doc = new XMLDocument();
 		doc->InsertEndChild( doc->NewElement( "element" ) );
 		doc->Print();
 		delete doc;
 	}
+
 	#if defined( WIN32 )
 		_CrtMemCheckpoint( &endMemState );  
 		//_CrtMemDumpStatistics( &endMemState );
@@ -88,5 +142,7 @@
 		_CrtMemDifference( &diffMemState, &startMemState, &endMemState );
 		_CrtMemDumpStatistics( &diffMemState );
 	#endif
+
+	printf ("\nPass %d, Fail %d\n", gPass, gFail);
 	return 0;
 }
\ No newline at end of file
