Fixed some bugs xmlDOMWrapReconcileNamespaces() wrt the previous addition

* tree.c: Fixed some bugs xmlDOMWrapReconcileNamespaces() wrt
  the previous addition of the removal of redundant ns-decls.
diff --git a/tree.c b/tree.c
index 9b71b7f..d2c70f5 100644
--- a/tree.c
+++ b/tree.c
@@ -8123,7 +8123,8 @@
 		*/
 		if (cur->nsDef != NULL) {
 		    prevns = NULL;
-		    for (ns = cur->nsDef; ns != NULL; ns = ns->next) {
+		    ns = cur->nsDef;
+		    while (ns != NULL) {
 			if (! parnsdone) {
 			    if ((elem->parent) &&
 				((xmlNodePtr) elem->parent->doc != elem->parent)) {
@@ -8160,12 +8161,12 @@
 					goto internal_error;
 				    /*
 				    * Remove the ns-decl from the element-node.
-				    */
+				    */				    
 				    if (prevns)
 					prevns->next = ns->next;
 				    else
-					cur->nsDef = ns->next;
-				    goto adopt_ns;
+					cur->nsDef = ns->next;				    				    
+				    goto next_ns_decl;
 				}
 			    }
 			}
@@ -8195,14 +8196,15 @@
 			*/
 			if (xmlDOMWrapNSNormAddNsMapItem(&nsMap, &topmi, ns, ns,
 			    depth) == NULL)
-			    goto internal_error;
+			    goto internal_error;			
 
 			prevns = ns;
+next_ns_decl:
+			ns = ns->next;			
 		    }
 		}
 		if (! adoptns)
 		    goto ns_end;
-adopt_ns:
 		/* No break on purpose. */
 	    case XML_ATTRIBUTE_NODE:
 		/* No ns, no fun. */
@@ -8316,7 +8318,7 @@
 internal_error:
     ret = -1;
 exit:
-    if (listRedund) {
+    if (listRedund) {	
 	for (i = 0, j = 0; i < nbRedund; i++, j += 2) {
 	    xmlFreeNs(listRedund[j]);
 	}