diff --git a/src/java/org/apache/poi/util/XMLHelper.java b/src/java/org/apache/poi/util/XMLHelper.java
index fd23c0c..e27c976 100644
--- a/src/java/org/apache/poi/util/XMLHelper.java
+++ b/src/java/org/apache/poi/util/XMLHelper.java
@@ -72,7 +72,7 @@
     static final String METHOD_ENTITY_EXPANSION_XERCES = "setEntityExpansionLimit";
 
     static final String[] SECURITY_MANAGERS = {
-            "com.sun.org.apache.xerces.internal.util.SecurityManager",
+            //"com.sun.org.apache.xerces.internal.util.SecurityManager",
             "org.apache.xerces.util.SecurityManager"
     };
 
diff --git a/src/ooxml/testcases/org/apache/poi/ooxml/TestNecessaryOOXMLClasses.java b/src/ooxml/testcases/org/apache/poi/ooxml/TestNecessaryOOXMLClasses.java
new file mode 100644
index 0000000..86179ee
--- /dev/null
+++ b/src/ooxml/testcases/org/apache/poi/ooxml/TestNecessaryOOXMLClasses.java
@@ -0,0 +1,34 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.ooxml;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import com.microsoft.schemas.compatibility.AlternateContentDocument;
+import org.apache.xmlbeans.impl.schema.DocumentFactory;
+import org.junit.jupiter.api.Test;
+
+// aim is to get these classes loaded and included in poi-ooxml-lite.jar
+class TestNecessaryOOXMLClasses {
+
+    @Test
+    void testProblemClasses() {
+        DocumentFactory<AlternateContentDocument> factory = AlternateContentDocument.Factory;
+        assertNotNull(factory);
+    }
+}
diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/TestNecessaryOOXMLClasses.java b/src/ooxml/testcases/org/apache/poi/xwpf/TestNecessaryOOXMLClasses.java
index 0b09c3b..6840722 100644
--- a/src/ooxml/testcases/org/apache/poi/xwpf/TestNecessaryOOXMLClasses.java
+++ b/src/ooxml/testcases/org/apache/poi/xwpf/TestNecessaryOOXMLClasses.java
@@ -21,10 +21,7 @@
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 import org.junit.jupiter.api.Test;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTEm;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblLayoutType;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.STEm;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblLayoutType;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
 
 // aim is to get these classes loaded and included in poi-ooxml-lite.jar
 class TestNecessaryOOXMLClasses {
@@ -40,5 +37,7 @@
         STEm stEm = STEm.Factory.newInstance();
         assertNotNull(stEm);
         assertEquals(STEm.CIRCLE, STEm.Enum.forString("circle"));
+        STHexColorAuto stHexColorAuto = STHexColorAuto.Factory.newInstance();
+        assertNotNull(stHexColorAuto);
     }
 }
