diff --git a/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp b/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp
index 98ec94260fe4c016338cf3924c72b88fb3ba5b2e..14d6c2fcef2353a63fea68984b91250cb8d9334b 100644
--- a/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.5  2003/01/10 16:48:47  tng
+ * [Bug 14912] crashes inside UnionDatatypeValidator::isSubstitutableBy.   Patch from Alberto Massari.
+ *
  * Revision 1.4  2002/12/18 14:17:55  gareth
  * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
  *
@@ -325,14 +328,15 @@ inline bool UnionDatatypeValidator::isSubstitutableBy(const DatatypeValidator* c
         return true;
     }
 
-    unsigned int memberSize = fMemberTypeValidators->size();
+    if (fMemberTypeValidators) {
+        unsigned int memberSize = fMemberTypeValidators->size();
 
-    for (unsigned int i=0; i < memberSize; i++) {
-        if (fMemberTypeValidators->elementAt(i)->isSubstitutableBy(toCheck)) {
-            return true;
+        for (unsigned int i=0; i < memberSize; i++) {
+            if (fMemberTypeValidators->elementAt(i)->isSubstitutableBy(toCheck)) {
+                return true;
+            }
         }
     }
-
     return false;
 }