diff --git a/src/xercesc/validators/common/MixedContentModel.cpp b/src/xercesc/validators/common/MixedContentModel.cpp
index ddac204cd1a7651d0a5fa1124a742456c4603163..d07ccb1868989c445bdfa00d2ea4d42a0bc018e1 100644
--- a/src/xercesc/validators/common/MixedContentModel.cpp
+++ b/src/xercesc/validators/common/MixedContentModel.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.11  2004/08/11 21:08:31  knoaman
+ * Fixing Xerces-C crash when creating a MixedContentModel. Patch by  Andrew Fang.
+ *
  * Revision 1.10  2004/01/29 11:51:21  cargilld
  * Code cleanup changes to get rid of various compiler diagnostic messages.
  *
@@ -210,13 +213,16 @@ MixedContentModel::MixedContentModel(const bool             dtd
         fCount * sizeof(ContentSpecNode::NodeTypes)
     ); //new ContentSpecNode::NodeTypes[fCount];
     for (unsigned int index = 0; index < fCount; index++) {
-        fChildren[index] = children.elementAt(index);
+        fChildren[index] = new (fMemoryManager) QName(*children.elementAt(index));
         fChildTypes[index] = childTypes.elementAt(index);
     }
 }
 
 MixedContentModel::~MixedContentModel()
 {
+    for (unsigned int index = 0; index < fCount; index++) {
+        delete fChildren[index];
+    }
     fMemoryManager->deallocate(fChildren); //delete [] fChildren;
     fMemoryManager->deallocate(fChildTypes); //delete [] fChildTypes;
 }