Richard Jinks spotted an incoherent memory allocation behaviour in

* xpath.c: Richard Jinks spotted an incoherent memory allocation
  behaviour in xmlXPathCastToString()
Daniel
diff --git a/xpath.c b/xpath.c
index 484975c..7018ce2 100644
--- a/xpath.c
+++ b/xpath.c
@@ -3237,7 +3237,7 @@
 	    ret = xmlXPathCastNodeSetToString(val->nodesetval);
 	    break;
 	case XPATH_STRING:
-	    return(val->stringval);
+	    return(xmlStrdup(val->stringval));
         case XPATH_BOOLEAN:
 	    ret = xmlXPathCastBooleanToString(val->boolval);
 	    break;