- HTMLtree.c: real fix for  #53402
Daniel
diff --git a/HTMLtree.c b/HTMLtree.c
index 51a72f9..28226ea 100644
--- a/HTMLtree.c
+++ b/HTMLtree.c
@@ -516,15 +516,19 @@
 	return;
     }
     if (cur->type == HTML_PI_NODE) {
+	if (cur->name == NULL)
+	    return;
+	xmlBufferWriteChar(buf, "<?");
+	xmlBufferWriteCHAR(buf, cur->name);
 	if (cur->content != NULL) {
-	    xmlBufferWriteChar(buf, "<?");
+	    xmlBufferWriteChar(buf, " ");
 #ifndef XML_USE_BUFFER_CONTENT
 	    xmlBufferWriteCHAR(buf, cur->content);
 #else
 	    xmlBufferWriteCHAR(buf, xmlBufferContent(cur->content));
 #endif
-	    xmlBufferWriteChar(buf, ">");
 	}
+	xmlBufferWriteChar(buf, ">");
 	return;
     }
     if (cur->type == HTML_ENTITY_REF_NODE) {
@@ -880,16 +884,20 @@
 	return;
     }
     if (cur->type == HTML_PI_NODE) {
+	if (cur->name == NULL)
+	    return;
+	xmlOutputBufferWriteString(buf, "<?");
+	xmlOutputBufferWriteString(buf, (const char *)cur->name);
 	if (cur->content != NULL) {
-	    xmlOutputBufferWriteString(buf, "<?");
+	    xmlOutputBufferWriteString(buf, " ");
 #ifndef XML_USE_BUFFER_CONTENT
 	    xmlOutputBufferWriteString(buf, (const char *)cur->content);
 #else
 	    xmlOutputBufferWriteString(buf, (const char *)
 		                       xmlBufferContent(cur->content));
 #endif
-	    xmlOutputBufferWriteString(buf, ">");
 	}
+	xmlOutputBufferWriteString(buf, ">");
 	return;
     }
     if (cur->type == HTML_ENTITY_REF_NODE) {