- xinclude.c: Raphael Hertzog had a trouble with DTD nodes
  being processed, applied his patch
- tree.c: fixed a bug raised in xmlStaticCopyNodeList()
Daniel
diff --git a/xinclude.c b/xinclude.c
index 3b31001..0909d3e 100644
--- a/xinclude.c
+++ b/xinclude.c
@@ -407,12 +407,26 @@
     if (fragment == NULL) {
 	/*
 	 * Add the top children list as the replacement copy.
-	 * ISSUE: seems we should scrap DTD info from the copied list.
 	 */
 	if (doc == NULL)
+	{
+	    /* Hopefully a DTD declaration won't be copied from
+	     * the same document */
 	    ctxt->repTab[nr] = xmlCopyNodeList(ctxt->doc->children);
-	else
+	} else {
+	    /* DTD declarations can't be copied from included files */
+	    xmlNodePtr node = doc->children;
+	    while (node != NULL)
+	    {
+		if (node->type == XML_DTD_NODE)
+		{
+		    xmlUnlinkNode(node);
+		    xmlFreeNode(node);
+		}
+		node = node->next;
+	    }
 	    ctxt->repTab[nr] = xmlCopyNodeList(doc->children);
+	}
     } else {
 	/*
 	 * Computes the XPointer expression and make a copy used