Only use checkParent with Axiom methods and be more lenient with DOM methods.
diff --git a/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPElement.java b/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPElement.java
index eb48b82..e225e64 100644
--- a/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPElement.java
+++ b/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPElement.java
@@ -80,7 +80,7 @@
     protected void setParent(OMContainer element, boolean useDomSemantics) {
         super.setParent(element, useDomSemantics);
 
-        if (element instanceof OMElement) {
+        if (!useDomSemantics && element instanceof OMElement) {
             checkParent((OMElement) element);
         }
     }
diff --git a/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPHeaderBlockImpl.java b/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPHeaderBlockImpl.java
index 656ace0..27e21d3 100644
--- a/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPHeaderBlockImpl.java
+++ b/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPHeaderBlockImpl.java
@@ -140,7 +140,7 @@
     protected void setParent(OMContainer element, boolean useDomSemantics) {
         super.setParent(element, useDomSemantics);
     
-        if (element instanceof OMElement) {
+        if (!useDomSemantics && element instanceof OMElement) {
             checkParent((OMElement) element);
         }
     }