Minimal changes for XSLT node-set() extra function:
- tree.c: minor doc fix
- xpath.c: deallocation issues when a result tree has been
  converted to a node-set
Daniel
diff --git a/xpath.c b/xpath.c
index ff7a89b..1bc30e6 100644
--- a/xpath.c
+++ b/xpath.c
@@ -999,6 +999,7 @@
     }
     memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
     ret->type = XPATH_NODESET;
+    ret->boolval = 0;
     ret->nodesetval = xmlXPathNodeSetCreate(val);
     return(ret);
 }
@@ -1586,8 +1587,14 @@
 xmlXPathFreeObject(xmlXPathObjectPtr obj) {
     if (obj == NULL) return;
     if (obj->type == XPATH_NODESET) {
-	if (obj->nodesetval != NULL)
-	    xmlXPathFreeNodeSet(obj->nodesetval);
+	if (obj->boolval) {
+	    obj->type = XPATH_XSLT_TREE;
+	    if (obj->nodesetval != NULL)
+		xmlXPathFreeValueTree(obj->nodesetval);
+	} else {
+	    if (obj->nodesetval != NULL)
+		xmlXPathFreeNodeSet(obj->nodesetval);
+	}
 #ifdef LIBXML_XPTR_ENABLED
     } else if (obj->type == XPATH_LOCATIONSET) {
 	if (obj->user != NULL)