Fix crash when element is being inserted "after itself"
diff --git a/xmltest.cpp b/xmltest.cpp
index 18e2491..75c28e5 100644
--- a/xmltest.cpp
+++ b/xmltest.cpp
@@ -386,6 +386,34 @@
 	}

 

 	{

+		// This test is pre-test for the next one

+		// (where Element1 is inserted "after itself".

+		// This code didn't use to crash.

+		XMLDocument doc;

+		XMLElement* element1 = doc.NewElement("Element1");

+		XMLElement* element2 = doc.NewElement("Element2");

+		doc.InsertEndChild(element1);

+		doc.InsertEndChild(element2);

+		doc.InsertAfterChild(element2, element2);

+		doc.InsertAfterChild(element2, element2);

+	}

+

+	{

+		XMLDocument doc;

+		XMLElement* element1 = doc.NewElement("Element1");

+		XMLElement* element2 = doc.NewElement("Element2");

+		doc.InsertEndChild(element1);

+		doc.InsertEndChild(element2);

+

+		// This insertion "after itself"

+		// used to cause invalid memory access and crash

+		doc.InsertAfterChild(element1, element1);

+		doc.InsertAfterChild(element1, element1);

+		doc.InsertAfterChild(element2, element2);

+		doc.InsertAfterChild(element2, element2);

+	}

+

+	{

 		static const char* test = "<element>Text before.</element>";

 		XMLDocument doc;

 		doc.Parse( test );