diff --git a/tree.c b/tree.c
index 6d026b9..5c5fb8d 100644
--- a/tree.c
+++ b/tree.c
@@ -5779,7 +5779,7 @@
 void
 xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc, xmlChar **doc_txt_ptr,
 		int * doc_txt_len, const char * txt_encoding,
-		int format ATTRIBUTE_UNUSED) {
+		int format) {
     int                         dummy = 0;
 
     xmlCharEncoding             doc_charset;
@@ -5842,7 +5842,7 @@
         return;
     }
 
-    xmlDocContentDumpOutput(out_buff, out_doc, txt_encoding, 1);
+    xmlDocContentDumpOutput(out_buff, out_doc, txt_encoding, format);
     xmlOutputBufferFlush(out_buff);
     if (out_buff->conv != NULL) {
 	*doc_txt_len = out_buff->conv->use;
@@ -5909,7 +5909,7 @@
 xmlDocDumpMemoryEnc(xmlDocPtr out_doc, xmlChar **doc_txt_ptr,
 	            int * doc_txt_len, const char * txt_encoding) {
     xmlDocDumpFormatMemoryEnc(out_doc, doc_txt_ptr, doc_txt_len,
-	                      txt_encoding, 1);
+	                      txt_encoding, 0);
 }
 
 /**
@@ -6011,7 +6011,7 @@
     }
     buf = xmlOutputBufferCreateFile(f, handler);
     if (buf == NULL) return(-1);
-    xmlDocContentDumpOutput(buf, cur, NULL, 1);
+    xmlDocContentDumpOutput(buf, cur, NULL, 0);
 
     ret = xmlOutputBufferClose(buf);
     return(ret);
@@ -6032,7 +6032,7 @@
     int ret;
 
     if (buf == NULL) return(0);
-    xmlDocContentDumpOutput(buf, cur, encoding, 1);
+    xmlDocContentDumpOutput(buf, cur, encoding, 0);
     ret = xmlOutputBufferClose(buf);
     return(ret);
 }
@@ -6076,7 +6076,7 @@
     buf = xmlOutputBufferCreateFilename(filename, handler, 0);
     if (buf == NULL) return(-1);
 
-    xmlDocContentDumpOutput(buf, cur, encoding, 1);
+    xmlDocContentDumpOutput(buf, cur, encoding, 0);
 
     ret = xmlOutputBufferClose(buf);
     return(ret);
@@ -6131,7 +6131,7 @@
     buf = xmlOutputBufferCreateFilename(filename, handler, cur->compression);
     if (buf == NULL) return(-1);
 
-    xmlDocContentDumpOutput(buf, cur, NULL, 1);
+    xmlDocContentDumpOutput(buf, cur, NULL, 0);
 
     ret = xmlOutputBufferClose(buf);
     return(ret);
