diff --git a/ChangeLog b/ChangeLog
index 70da84b..112c0f4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Mon Sep 22 12:21:11 CEST 2003 Daniel Veillard <daniel@veillard.com>
+
+	* tree.c include/libxml/tree.h: the uri arg to xmlNodeSetBase is
+	  really a const xmlChar*
+	* xmlreader.c include/libxml/xmlreader.h: addin the
+	  xmlTextReaderConstString() to get an interned string from
+	  the reader
+
 Sun Sep 20 17:22:20 PDT 2003 William Brack <wbrack@mmm.com.hk>
 
 	* error.c: fixed a warning message (trivial)
diff --git a/include/libxml/tree.h b/include/libxml/tree.h
index 5ead191..686364f 100644
--- a/include/libxml/tree.h
+++ b/include/libxml/tree.h
@@ -926,7 +926,7 @@
 					 xmlNodePtr cur);
 XMLPUBFUN void XMLCALL		
 		xmlNodeSetBase		(xmlNodePtr cur,
-					 xmlChar *uri);
+					 const xmlChar *uri);
 
 /*
  * Removing content.
diff --git a/include/libxml/xmlreader.h b/include/libxml/xmlreader.h
index c8af21a..139b1de 100644
--- a/include/libxml/xmlreader.h
+++ b/include/libxml/xmlreader.h
@@ -131,6 +131,10 @@
 		    xmlTextReaderConstPrefix	(xmlTextReaderPtr reader);
 XMLPUBFUN const xmlChar * XMLCALL	
 		    xmlTextReaderConstXmlLang	(xmlTextReaderPtr reader);
+XMLPUBFUN const xmlChar * XMLCALL	
+		    xmlTextReaderConstString	(xmlTextReaderPtr reader,
+		    				 const xmlChar *str);
+
 /*
  * Methods of the XmlTextReader
  */
diff --git a/tree.c b/tree.c
index a65fda8..8fc7e85 100644
--- a/tree.c
+++ b/tree.c
@@ -4550,7 +4550,7 @@
  * xml:base attribute.
  */
 void
-xmlNodeSetBase(xmlNodePtr cur, xmlChar* uri) {
+xmlNodeSetBase(xmlNodePtr cur, const xmlChar* uri) {
     xmlNsPtr ns;
 
     if (cur == NULL) return;
diff --git a/xmlreader.c b/xmlreader.c
index 6c52e1f..8109cf8 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -2992,6 +2992,24 @@
 }
 
 /**
+ * xmlTextReaderConstString:
+ * @reader:  the xmlTextReaderPtr used
+ * @str:  the string to intern.
+ *
+ * Get an interned string from the reader, allows for example to
+ * speedup string name comparisons
+ *
+ * Returns an interned copy of the string or NULL in case of error. The
+ *         string will be deallocated with the reader.
+ */
+const xmlChar *
+xmlTextReaderConstString(xmlTextReaderPtr reader, const xmlChar *str) {
+    if (reader == NULL)
+	return(NULL);
+    return(CONSTSTR(str));
+}
+
+/**
  * xmlTextReaderNormalization:
  * @reader:  the xmlTextReaderPtr used
  *
