diff -ruN a/examples/dom_build/main.cc b/examples/dom_build/main.cc
--- a/examples/dom_build/main.cc	2010-07-28 11:40:54.121074836 -0400
+++ b/examples/dom_build/main.cc	2010-07-28 14:19:04.908007944 -0400
@@ -32,7 +32,7 @@
 main(int /* argc */, char** /* argv */)
 {
   // Set the global C and C++ locale to the user-configured locale,
-  // so we can use std::cout with UTF-8, via Glib::ustring, without exceptions.
+  // so we can use std::cout with UTF-8, via xmlpp::string, without exceptions.
   std::locale::global(std::locale(""));
 
   #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
@@ -60,7 +60,7 @@
     nodeChild = nodeRoot->add_child("examplechild", "foobar"); //foobar is the namespace prefix
     nodeChild->set_attribute("id", "2", "foobar"); //foobar is the namespace prefix.
 
-    Glib::ustring whole = document.write_to_string();
+    xmlpp::string whole = document.write_to_string();
     std::cout << "XML built at runtime: " << std::endl << whole << std::endl;
     std::cout << "default namespace: " << nodeRoot->get_namespace_uri() << std::endl;
   #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
diff -ruN a/examples/dom_parse_entities/main.cc b/examples/dom_parse_entities/main.cc
--- a/examples/dom_parse_entities/main.cc	2010-07-28 11:40:54.123023431 -0400
+++ b/examples/dom_parse_entities/main.cc	2010-07-28 14:19:04.908007944 -0400
@@ -62,7 +62,7 @@
 int main(int argc, char* argv[])
 {
   // Set the global C++ locale to the user-configured locale,
-  // so we can use std::cout with UTF-8, via Glib::ustring, without exceptions.
+  // so we can use std::cout with UTF-8, via xmlpp::string, without exceptions.
   std::locale::global(std::locale(""));
 
   std::string filepath;
diff -ruN a/examples/dom_parser/main.cc b/examples/dom_parser/main.cc
--- a/examples/dom_parser/main.cc	2010-07-28 11:40:54.118064242 -0400
+++ b/examples/dom_parser/main.cc	2010-07-28 14:19:04.907007841 -0400
@@ -44,13 +44,13 @@
   if(nodeText && nodeText->is_white_space()) //Let's ignore the indenting - you don't always want to do this.
     return;
     
-  const Glib::ustring nodename = node->get_name();
+  const xmlpp::string nodename = node->get_name();
 
   if(!nodeText && !nodeComment && !nodename.empty()) //Let's not say "name: text".
   {
     print_indentation(indentation);
 
-    const Glib::ustring namespace_prefix = node->get_namespace_prefix();
+    const xmlpp::string namespace_prefix = node->get_namespace_prefix();
     if(namespace_prefix.empty())
       std::cout << "Node name = " << nodename << std::endl;
     else
@@ -93,7 +93,7 @@
       const xmlpp::Attribute* attribute = *iter;
       print_indentation(indentation);
 
-      const Glib::ustring namespace_prefix = attribute->get_namespace_prefix();
+      const xmlpp::string namespace_prefix = attribute->get_namespace_prefix();
       if(namespace_prefix.empty())
         std::cout << "  Attribute " << attribute->get_name() << " = " << attribute->get_value() << std::endl; 
       else
@@ -121,7 +121,7 @@
 int main(int argc, char* argv[])
 {
   // Set the global C++ locale to the user-configured locale,
-  // so we can use std::cout with UTF-8, via Glib::ustring, without exceptions.
+  // so we can use std::cout with UTF-8, via xmlpp::string, without exceptions.
   std::locale::global(std::locale(""));
 
   std::string filepath;
diff -ruN a/examples/dom_parser_raw/main.cc b/examples/dom_parser_raw/main.cc
--- a/examples/dom_parser_raw/main.cc	2010-07-28 11:40:54.091011769 -0400
+++ b/examples/dom_parser_raw/main.cc	2010-07-28 14:19:04.906085564 -0400
@@ -61,7 +61,7 @@
 int main(int argc, char* argv[])
 {
   // Set the global C++ locale to the user-configured locale,
-  // so we can use std::cout with UTF-8, via Glib::ustring, without exceptions.
+  // so we can use std::cout with UTF-8, via xmlpp::string, without exceptions.
   std::locale::global(std::locale(""));
 
   std::string filepath;
diff -ruN a/examples/dom_read_write/main.cc b/examples/dom_read_write/main.cc
--- a/examples/dom_read_write/main.cc	2010-07-28 11:40:54.119061821 -0400
+++ b/examples/dom_read_write/main.cc	2010-07-28 14:19:04.908007944 -0400
@@ -32,7 +32,7 @@
 main(int argc, char* argv[])
 {
   // Set the global C and C++ locale to the user-configured locale,
-  // so we can use std::cout with UTF-8, via Glib::ustring, without exceptions.
+  // so we can use std::cout with UTF-8, via xmlpp::string, without exceptions.
   std::locale::global(std::locale(""));
 
   //Parse command-line arguments:
diff -ruN a/examples/dom_xpath/main.cc b/examples/dom_xpath/main.cc
--- a/examples/dom_xpath/main.cc	2010-07-28 11:40:54.090075130 -0400
+++ b/examples/dom_xpath/main.cc	2010-07-28 14:19:04.906085564 -0400
@@ -28,7 +28,7 @@
 #include <iostream>
 
 
-void xpath_test(const xmlpp::Node* node, const Glib::ustring& xpath)
+void xpath_test(const xmlpp::Node* node, const xmlpp::string& xpath)
 {
   std::cout << std::endl; //Separate tests by an empty line.
   std::cout << "searching with xpath '" << xpath << "' in root node: " << std::endl;
@@ -47,7 +47,7 @@
 int main(int argc, char* argv[])
 {
   // Set the global C++ locale to the user-configured locale,
-  // so we can use std::cout with UTF-8, via Glib::ustring, without exceptions.
+  // so we can use std::cout with UTF-8, via xmlpp::string, without exceptions.
   std::locale::global(std::locale(""));
 
   std::string filepath;
diff -ruN a/examples/dtdvalidation/main.cc b/examples/dtdvalidation/main.cc
--- a/examples/dtdvalidation/main.cc	2010-07-28 11:40:54.121074836 -0400
+++ b/examples/dtdvalidation/main.cc	2010-07-28 14:19:04.908007944 -0400
@@ -31,7 +31,7 @@
 int main(int argc, char* argv[])
 {
   // Set the global C and C++ locale to the user-configured locale,
-  // so we can use std::cout with UTF-8, via Glib::ustring, without exceptions.
+  // so we can use std::cout with UTF-8, via xmlpp::string, without exceptions.
   std::locale::global(std::locale(""));
 
   std::string dtdfilepath;
diff -ruN a/examples/import_node/main.cc b/examples/import_node/main.cc
--- a/examples/import_node/main.cc	2010-07-28 11:40:54.108085127 -0400
+++ b/examples/import_node/main.cc	2010-07-28 14:19:04.907007841 -0400
@@ -1,6 +1,5 @@
 #include <iostream>
 #include <stdexcept>
-#include <glibmm/ustring.h>
 #include <cstdlib>
 #include <libxml++/libxml++.h>
 
@@ -10,7 +9,7 @@
 int main (int /* argc */, char** /* argv */)
 {
   // Set the global C and C++ locale to the user-configured locale,
-  // so we can use std::cout with UTF-8, via Glib::ustring, without exceptions.
+  // so we can use std::cout with UTF-8, via xmlpp::string, without exceptions.
   std::locale::global(std::locale(""));
 
   #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
diff -ruN a/examples/sax_exception/main.cc b/examples/sax_exception/main.cc
--- a/examples/sax_exception/main.cc	2010-07-28 11:40:54.104068352 -0400
+++ b/examples/sax_exception/main.cc	2010-07-28 14:19:04.907007841 -0400
@@ -33,7 +33,7 @@
 int main(int /* argc */, char** /* argv */)
 {
   // Set the global C and C++ locale to the user-configured locale,
-  // so we can use std::cout with UTF-8, via Glib::ustring, without exceptions.
+  // so we can use std::cout with UTF-8, via xmlpp::string, without exceptions.
   std::locale::global(std::locale(""));
 
   MySaxParser parser;
diff -ruN a/examples/sax_exception/myparser.cc b/examples/sax_exception/myparser.cc
--- a/examples/sax_exception/myparser.cc	2010-07-28 11:40:54.104068352 -0400
+++ b/examples/sax_exception/myparser.cc	2010-07-28 14:19:04.907007841 -0400
@@ -70,7 +70,7 @@
   std::cout << "on_end_document()" << std::endl;
 }
 
-void MySaxParser::on_start_element(const Glib::ustring& name,
+void MySaxParser::on_start_element(const xmlpp::string& name,
                                    const AttributeList& attributes)
 {
   std::cout << "node name=" << name << std::endl;
@@ -88,32 +88,32 @@
   #endif //LIBXMLCPP_EXCEPTIONS_ENABLED 
 }
 
-void MySaxParser::on_end_element(const Glib::ustring& /* name */)
+void MySaxParser::on_end_element(const xmlpp::string& /* name */)
 {
   std::cout << "on_end_element()" << std::endl;
 }
 
-void MySaxParser::on_characters(const Glib::ustring& text)
+void MySaxParser::on_characters(const xmlpp::string& text)
 {
   std::cout << "on_characters(): " << text << std::endl;
 }
 
-void MySaxParser::on_comment(const Glib::ustring& text)
+void MySaxParser::on_comment(const xmlpp::string& text)
 {
   std::cout << "on_comment(): " << text << std::endl;
 }
 
-void MySaxParser::on_warning(const Glib::ustring& text)
+void MySaxParser::on_warning(const xmlpp::string& text)
 {
   std::cout << "on_warning(): " << text << std::endl;
 }
 
-void MySaxParser::on_error(const Glib::ustring& text)
+void MySaxParser::on_error(const xmlpp::string& text)
 {
   std::cout << "on_error(): " << text << std::endl;
 }
 
-void MySaxParser::on_fatal_error(const Glib::ustring& text)
+void MySaxParser::on_fatal_error(const xmlpp::string& text)
 {
   std::cout << "on_fatal_error(): " << text << std::endl;
 }
diff -ruN a/examples/sax_exception/myparser.h b/examples/sax_exception/myparser.h
--- a/examples/sax_exception/myparser.h	2010-07-28 11:40:54.104068352 -0400
+++ b/examples/sax_exception/myparser.h	2010-07-28 14:19:04.907007841 -0400
@@ -43,14 +43,14 @@
     //overrides:
     virtual void on_start_document();
     virtual void on_end_document();
-    virtual void on_start_element(const Glib::ustring& name,
+    virtual void on_start_element(const xmlpp::string& name,
                                   const AttributeList &properties);
-    virtual void on_end_element(const Glib::ustring& name);
-    virtual void on_characters(const Glib::ustring& characters);
-    virtual void on_comment(const Glib::ustring& text);
-    virtual void on_warning(const Glib::ustring& text);
-    virtual void on_error(const Glib::ustring& text);
-    virtual void on_fatal_error(const Glib::ustring& text);
+    virtual void on_end_element(const xmlpp::string& name);
+    virtual void on_characters(const xmlpp::string& characters);
+    virtual void on_comment(const xmlpp::string& text);
+    virtual void on_warning(const xmlpp::string& text);
+    virtual void on_error(const xmlpp::string& text);
+    virtual void on_fatal_error(const xmlpp::string& text);
 };
 
 
diff -ruN a/examples/sax_parser/main.cc b/examples/sax_parser/main.cc
--- a/examples/sax_parser/main.cc	2010-07-28 11:40:54.100082662 -0400
+++ b/examples/sax_parser/main.cc	2010-07-28 14:19:04.907007841 -0400
@@ -32,7 +32,7 @@
 main(int argc, char* argv[])
 {
   // Set the global C and C++ locale to the user-configured locale,
-  // so we can use std::cout with UTF-8, via Glib::ustring, without exceptions.
+  // so we can use std::cout with UTF-8, via xmlpp::string, without exceptions.
   std::locale::global(std::locale(""));
 
   std::string filepath;
@@ -78,7 +78,7 @@
       is.read(buffer, buffer_size-1);
       if(is && is.gcount())
       {
-        Glib::ustring input(buffer, is.gcount());
+        xmlpp::string input(buffer, is.gcount());
         parser.parse_chunk(input);
       }
     }
diff -ruN a/examples/sax_parser/myparser.cc b/examples/sax_parser/myparser.cc
--- a/examples/sax_parser/myparser.cc	2010-07-28 11:40:54.100082662 -0400
+++ b/examples/sax_parser/myparser.cc	2010-07-28 14:19:04.907007841 -0400
@@ -44,7 +44,7 @@
   std::cout << "on_end_document()" << std::endl;
 }
 
-void MySaxParser::on_start_element(const Glib::ustring& name,
+void MySaxParser::on_start_element(const xmlpp::string& name,
                                    const AttributeList& attributes)
 {
   std::cout << "node name=" << name << std::endl;
@@ -72,12 +72,12 @@
   }
 }
 
-void MySaxParser::on_end_element(const Glib::ustring& /* name */)
+void MySaxParser::on_end_element(const xmlpp::string& /* name */)
 {
   std::cout << "on_end_element()" << std::endl;
 }
 
-void MySaxParser::on_characters(const Glib::ustring& text)
+void MySaxParser::on_characters(const xmlpp::string& text)
 {
   try
   {
@@ -89,7 +89,7 @@
   }
 }
 
-void MySaxParser::on_comment(const Glib::ustring& text)
+void MySaxParser::on_comment(const xmlpp::string& text)
 {
   try
   {
@@ -101,7 +101,7 @@
   }
 }
 
-void MySaxParser::on_warning(const Glib::ustring& text)
+void MySaxParser::on_warning(const xmlpp::string& text)
 {
   try
   {
@@ -113,7 +113,7 @@
   }
 }
 
-void MySaxParser::on_error(const Glib::ustring& text)
+void MySaxParser::on_error(const xmlpp::string& text)
 {
   try
   {
@@ -125,7 +125,7 @@
   }
 }
 
-void MySaxParser::on_fatal_error(const Glib::ustring& text)
+void MySaxParser::on_fatal_error(const xmlpp::string& text)
 {
   try
   {
diff -ruN a/examples/sax_parser/myparser.h b/examples/sax_parser/myparser.h
--- a/examples/sax_parser/myparser.h	2010-07-28 11:40:54.100082662 -0400
+++ b/examples/sax_parser/myparser.h	2010-07-28 14:19:04.907007841 -0400
@@ -35,14 +35,14 @@
 #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
   virtual void on_start_document();
   virtual void on_end_document();
-  virtual void on_start_element(const Glib::ustring& name,
+  virtual void on_start_element(const xmlpp::string& name,
                                 const AttributeList& properties);
-  virtual void on_end_element(const Glib::ustring& name);
-  virtual void on_characters(const Glib::ustring& characters);
-  virtual void on_comment(const Glib::ustring& text);
-  virtual void on_warning(const Glib::ustring& text);
-  virtual void on_error(const Glib::ustring& text);
-  virtual void on_fatal_error(const Glib::ustring& text);
+  virtual void on_end_element(const xmlpp::string& name);
+  virtual void on_characters(const xmlpp::string& characters);
+  virtual void on_comment(const xmlpp::string& text);
+  virtual void on_warning(const xmlpp::string& text);
+  virtual void on_error(const xmlpp::string& text);
+  virtual void on_fatal_error(const xmlpp::string& text);
 #endif
 };
 
diff -ruN a/examples/sax_parser_build_dom/main.cc b/examples/sax_parser_build_dom/main.cc
--- a/examples/sax_parser_build_dom/main.cc	2010-07-28 11:40:54.095088138 -0400
+++ b/examples/sax_parser_build_dom/main.cc	2010-07-28 14:19:04.907007841 -0400
@@ -38,7 +38,7 @@
 main(int argc, char* argv[])
 {
   // Set the global C and C++ locale to the user-configured locale,
-  // so we can use std::cout with UTF-8, via Glib::ustring, without exceptions.
+  // so we can use std::cout with UTF-8, via xmlpp::string, without exceptions.
   std::locale::global(std::locale(""));
 
   std::string filepath;
diff -ruN a/examples/sax_parser_build_dom/svgelement.cc b/examples/sax_parser_build_dom/svgelement.cc
--- a/examples/sax_parser_build_dom/svgelement.cc	2010-07-28 11:40:54.095088138 -0400
+++ b/examples/sax_parser_build_dom/svgelement.cc	2010-07-28 14:19:04.907007841 -0400
@@ -33,12 +33,12 @@
 {}
 
 // example custom methods
-void Element::set_style(const Glib::ustring& style)
+void Element::set_style(const xmlpp::string& style)
 {
   set_attribute("style", style);
 }
     
-const Glib::ustring Element::get_style() const
+const xmlpp::string Element::get_style() const
 {
   return get_attribute("style")->get_value();
 }
diff -ruN a/examples/sax_parser_build_dom/svgelement.h b/examples/sax_parser_build_dom/svgelement.h
--- a/examples/sax_parser_build_dom/svgelement.h	2010-07-28 11:40:54.094088171 -0400
+++ b/examples/sax_parser_build_dom/svgelement.h	2010-07-28 14:19:04.906085564 -0400
@@ -24,7 +24,6 @@
 #ifndef __LIBXMLPP_SVGELEMENT_H
 #define __LIBXMLPP_SVGELEMENT_H
 
-#include <glibmm/ustring.h>
 #include <libxml++/libxml++.h>
 #include <libxml/tree.h>
 
@@ -38,8 +37,8 @@
   virtual ~Element();
 
   // example custom methods
-  void set_style(const Glib::ustring& style);
-  const Glib::ustring get_style() const;
+  void set_style(const xmlpp::string& style);
+  const xmlpp::string get_style() const;
     
   // TODO: add custom methods 
 
diff -ruN a/examples/sax_parser_build_dom/svgparser.cc b/examples/sax_parser_build_dom/svgparser.cc
--- a/examples/sax_parser_build_dom/svgparser.cc	2010-07-28 11:40:54.097088044 -0400
+++ b/examples/sax_parser_build_dom/svgparser.cc	2010-07-28 14:19:04.907007841 -0400
@@ -41,7 +41,7 @@
 {
 }
 
-void Parser::on_start_element(const Glib::ustring& name,
+void Parser::on_start_element(const xmlpp::string& name,
                                    const AttributeList& attributes)
 {
   //This method replaces the normal libxml++ node
@@ -50,10 +50,10 @@
   //work with future versions of libxml++.
   
   // Parse namespace prefix and save for later:
-  Glib::ustring elementPrefix;
-  Glib::ustring elementName = name;
-  Glib::ustring::size_type idx = name.find(':'); 
-  if (idx != Glib::ustring::npos) //If the separator was found
+  xmlpp::string elementPrefix;
+  xmlpp::string elementName = name;
+  xmlpp::string::size_type idx = name.find(':');
+  if (idx != xmlpp::string::npos) //If the separator was found
   {
     elementPrefix = name.substr(0, idx);
     elementName = name.substr(idx + 1);
@@ -108,10 +108,10 @@
     // In theory, you could change the attributes here.
     for(xmlpp::SaxParser::AttributeList::const_iterator iter = attributes.begin(); iter != attributes.end(); ++iter)
     {
-      Glib::ustring name = (*iter).name;
-      Glib::ustring value = (*iter).value;
-      Glib::ustring::size_type idx = name.find(':');
-      if (idx == Glib::ustring::npos) // If the separator was not found.
+      xmlpp::string name = (*iter).name;
+      xmlpp::string value = (*iter).value;
+      xmlpp::string::size_type idx = name.find(':');
+      if (idx == xmlpp::string::npos) // If the separator was not found.
       {
         if (name == "xmlns") // This is a namespace declaration.
         {
@@ -127,8 +127,8 @@
       else
       {
         //The separator was found:
-        Glib::ustring prefix = name.substr(0, idx);
-        Glib::ustring suffix = name.substr(idx + 1);
+        xmlpp::string prefix = name.substr(0, idx);
+        xmlpp::string suffix = name.substr(idx + 1);
         if (prefix == "xmlns") // This is a namespace declaration.
           element_derived->set_namespace_declaration(value, suffix);
         else
@@ -148,19 +148,19 @@
   }
 }
 
-void Parser::on_end_element(const Glib::ustring& /* name */)
+void Parser::on_end_element(const xmlpp::string& /* name */)
 {
   // This causes the next child elements to be added to the sibling, not this node.
   m_context.pop();
 }
 
-void Parser::on_characters(const Glib::ustring& text)
+void Parser::on_characters(const xmlpp::string& text)
 {
   if(!m_context.empty())
     m_context.top()->add_child_text(text);
 }
 
-void Parser::on_comment(const Glib::ustring& text)
+void Parser::on_comment(const xmlpp::string& text)
 {
   if(!m_context.empty())
     m_context.top()->add_child_comment(text);
@@ -168,17 +168,17 @@
     m_doc.add_comment(text);
 }
 
-void Parser::on_warning(const Glib::ustring& text)
+void Parser::on_warning(const xmlpp::string& text)
 {
   std::cout << "on_warning(): " << text << std::endl;
 }
 
-void Parser::on_error(const Glib::ustring& text)
+void Parser::on_error(const xmlpp::string& text)
 {
   std::cout << "on_error(): " << text << std::endl;
 }
 
-void Parser::on_fatal_error(const Glib::ustring& text)
+void Parser::on_fatal_error(const xmlpp::string& text)
 {
   std::cout << "on_fatal_error(): " << text << std::endl;
 }
diff -ruN a/examples/sax_parser_build_dom/svgparser.h b/examples/sax_parser_build_dom/svgparser.h
--- a/examples/sax_parser_build_dom/svgparser.h	2010-07-28 11:40:54.095088138 -0400
+++ b/examples/sax_parser_build_dom/svgparser.h	2010-07-28 14:19:04.907007841 -0400
@@ -25,7 +25,6 @@
 #define __LIBXMLPP_SVGPARSER_H
 
 #include <stack>
-#include <glibmm/ustring.h>
 #include <libxml++/libxml++.h>
 
 namespace SVG {
@@ -40,14 +39,14 @@
   // SAX parser callbacks
   void on_start_document() {};
   void on_end_document() {};
-  void on_start_element(const Glib::ustring& name,
+  void on_start_element(const xmlpp::string& name,
                                 const AttributeList& properties);
-  void on_end_element(const Glib::ustring& name);
-  void on_characters(const Glib::ustring& characters);
-  void on_comment(const Glib::ustring& text);
-  void on_warning(const Glib::ustring& text);
-  void on_error(const Glib::ustring& text);
-  void on_fatal_error(const Glib::ustring& text);
+  void on_end_element(const xmlpp::string& name);
+  void on_characters(const xmlpp::string& characters);
+  void on_comment(const xmlpp::string& text);
+  void on_warning(const xmlpp::string& text);
+  void on_error(const xmlpp::string& text);
+  void on_fatal_error(const xmlpp::string& text);
 
 private:
   // context is a stack to keep track of parent node while the SAX parser
diff -ruN a/examples/sax_parser_build_dom/svgpath.h b/examples/sax_parser_build_dom/svgpath.h
--- a/examples/sax_parser_build_dom/svgpath.h	2010-07-28 11:40:54.096088121 -0400
+++ b/examples/sax_parser_build_dom/svgpath.h	2010-07-28 14:19:04.907007841 -0400
@@ -24,7 +24,6 @@
 #ifndef __LIBXMLPP_SVGPATH_H
 #define __LIBXMLPP_SVGPATH_H
 
-#include <glibmm/ustring.h>
 #include <libxml++/libxml++.h>
 #include "svgelement.h"
 
@@ -37,7 +36,7 @@
     : Element(node)
     {}
     
-  const Glib::ustring get_data() const
+  const xmlpp::string get_data() const
     {
       return get_attribute("d")->get_value();
     }
diff -ruN a/examples/sax_parser_entities/main.cc b/examples/sax_parser_entities/main.cc
--- a/examples/sax_parser_entities/main.cc	2010-07-28 11:40:54.126066906 -0400
+++ b/examples/sax_parser_entities/main.cc	2010-07-28 14:19:04.908007944 -0400
@@ -32,7 +32,7 @@
 main(int argc, char* argv[])
 {
   // Set the global C and C++ locale to the user-configured locale,
-  // so we can use std::cout with UTF-8, via Glib::ustring, without exceptions.
+  // so we can use std::cout with UTF-8, via xmlpp::string, without exceptions.
   std::locale::global(std::locale(""));
 
   std::string filepath;
diff -ruN a/examples/sax_parser_entities/myparser.cc b/examples/sax_parser_entities/myparser.cc
--- a/examples/sax_parser_entities/myparser.cc	2010-07-28 11:40:54.130106805 -0400
+++ b/examples/sax_parser_entities/myparser.cc	2010-07-28 14:19:04.908007944 -0400
@@ -42,7 +42,7 @@
   std::cout << "on_end_document()" << std::endl;
 }
 
-void MySaxParser::on_start_element(const Glib::ustring& name,
+void MySaxParser::on_start_element(const xmlpp::string& name,
                                    const AttributeList& attributes)
 {
   std::cout << "node name=" << name << std::endl;
@@ -54,37 +54,37 @@
   }
 }
 
-void MySaxParser::on_end_element(const Glib::ustring& /* name */)
+void MySaxParser::on_end_element(const xmlpp::string& /* name */)
 {
   std::cout << "on_end_element()" << std::endl;
 }
 
-void MySaxParser::on_characters(const Glib::ustring& text)
+void MySaxParser::on_characters(const xmlpp::string& text)
 {
   std::cout << "on_characters(): " << text << std::endl;
 }
 
-void MySaxParser::on_comment(const Glib::ustring& text)
+void MySaxParser::on_comment(const xmlpp::string& text)
 {
   std::cout << "on_comment(): " << text << std::endl;
 }
 
-void MySaxParser::on_warning(const Glib::ustring& text)
+void MySaxParser::on_warning(const xmlpp::string& text)
 {
   std::cout << "on_warning(): " << text << std::endl;
 }
 
-void MySaxParser::on_error(const Glib::ustring& text)
+void MySaxParser::on_error(const xmlpp::string& text)
 {
   std::cout << "on_error(): " << text << std::endl;
 }
 
-void MySaxParser::on_fatal_error(const Glib::ustring& text)
+void MySaxParser::on_fatal_error(const xmlpp::string& text)
 {
   std::cout << "on_fatal_error(): " << text << std::endl;
 }
 
-_xmlEntity* MySaxParser::on_get_entity(const Glib::ustring& name)
+_xmlEntity* MySaxParser::on_get_entity(const xmlpp::string& name)
 {
   std::cout << "on_get_entity(): " << name << std::endl;
   
@@ -92,7 +92,7 @@
   return SaxParser::on_get_entity(name);
 }
 
-void MySaxParser::on_entity_declaration(const Glib::ustring& name, xmlpp::XmlEntityType type, const Glib::ustring& publicId, const Glib::ustring& systemId, const Glib::ustring& content)
+void MySaxParser::on_entity_declaration(const xmlpp::string& name, xmlpp::XmlEntityType type, const xmlpp::string& publicId, const xmlpp::string& systemId, const xmlpp::string& content)
 {
   std::cout << "on_entity_declaration(): name=" << name << ", publicId=" << publicId << ", systemId=" << systemId << ", content=" << content << std::endl;
 
diff -ruN a/examples/sax_parser_entities/myparser.h b/examples/sax_parser_entities/myparser.h
--- a/examples/sax_parser_entities/myparser.h	2010-07-28 11:40:54.130106805 -0400
+++ b/examples/sax_parser_entities/myparser.h	2010-07-28 14:19:04.908007944 -0400
@@ -34,17 +34,17 @@
   //overrides:
   virtual void on_start_document();
   virtual void on_end_document();
-  virtual void on_start_element(const Glib::ustring& name,
+  virtual void on_start_element(const xmlpp::string& name,
                                 const AttributeList& properties);
-  virtual void on_end_element(const Glib::ustring& name);
-  virtual void on_characters(const Glib::ustring& characters);
-  virtual void on_comment(const Glib::ustring& text);
-  virtual void on_warning(const Glib::ustring& text);
-  virtual void on_error(const Glib::ustring& text);
-  virtual void on_fatal_error(const Glib::ustring& text);
+  virtual void on_end_element(const xmlpp::string& name);
+  virtual void on_characters(const xmlpp::string& characters);
+  virtual void on_comment(const xmlpp::string& text);
+  virtual void on_warning(const xmlpp::string& text);
+  virtual void on_error(const xmlpp::string& text);
+  virtual void on_fatal_error(const xmlpp::string& text);
 
-  virtual _xmlEntity* on_get_entity(const Glib::ustring& name);
-  virtual void on_entity_declaration(const Glib::ustring& name, xmlpp::XmlEntityType type, const Glib::ustring& publicId, const Glib::ustring& systemId, const Glib::ustring& content);
+  virtual _xmlEntity* on_get_entity(const xmlpp::string& name);
+  virtual void on_entity_declaration(const xmlpp::string& name, xmlpp::XmlEntityType type, const xmlpp::string& publicId, const xmlpp::string& systemId, const xmlpp::string& content);
 };
 
 
diff -ruN a/examples/schemavalidation/main.cc b/examples/schemavalidation/main.cc
--- a/examples/schemavalidation/main.cc	2010-07-28 11:40:54.114110973 -0400
+++ b/examples/schemavalidation/main.cc	2010-07-28 14:19:04.907007841 -0400
@@ -32,7 +32,7 @@
 int main(int argc, char* argv[])
 {
   // Set the global C and C++ locale to the user-configured locale,
-  // so we can use std::cout with UTF-8, via Glib::ustring, without exceptions.
+  // so we can use std::cout with UTF-8, via xmlpp::string, without exceptions.
   std::locale::global(std::locale(""));
 
   std::string schemafilepath("example.xsd"),
diff -ruN a/examples/textreader/main.cc b/examples/textreader/main.cc
--- a/examples/textreader/main.cc	2010-07-28 11:40:54.130106805 -0400
+++ b/examples/textreader/main.cc	2010-07-28 14:19:04.908007944 -0400
@@ -45,7 +45,7 @@
 int main(int /* argc */, char** /* argv */)
 {
   // Set the global C and C++ locale to the user-configured locale,
-  // so we can use std::cout with UTF-8, via Glib::ustring, without exceptions.
+  // so we can use std::cout with UTF-8, via xmlpp::string, without exceptions.
   std::locale::global(std::locale(""));
 
   #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
diff -ruN a/libxml++/attribute.cc b/libxml++/attribute.cc
--- a/libxml++/attribute.cc	2010-07-28 11:40:54.230051642 -0400
+++ b/libxml++/attribute.cc	2010-07-28 14:19:04.912007853 -0400
@@ -20,24 +20,24 @@
 {
 }
 
-Glib::ustring Attribute::get_name() const
+xmlpp::string Attribute::get_name() const
 {
-  return cobj()->name ? (char*)cobj()->name : Glib::ustring();
+  return cobj()->name ? (char*)cobj()->name : xmlpp::string();
 }
 
-Glib::ustring Attribute::get_value() const
+xmlpp::string Attribute::get_value() const
 {
   const xmlChar* ns_uri = 0;
   if(cobj()->ns)
     ns_uri = cobj()->ns->href;
 
   xmlChar *value = xmlGetNsProp(cobj()->parent, cobj()->name, ns_uri);
-  const Glib::ustring retn = value ? (char*)value : Glib::ustring();
+  const xmlpp::string retn = value ? (char*)value : xmlpp::string();
   xmlFree(value);
   return retn;
 }
 
-void Attribute::set_value(const Glib::ustring& value)
+void Attribute::set_value(const xmlpp::string& value)
 {
   xmlSetProp(cobj()->parent, cobj()->name, (xmlChar*)value.c_str());
 }
diff -ruN a/libxml++/attribute.h b/libxml++/attribute.h
--- a/libxml++/attribute.h	2010-07-28 11:40:54.171075223 -0400
+++ b/libxml++/attribute.h	2010-07-28 14:19:04.910006282 -0400
@@ -8,8 +8,7 @@
 #define __LIBXMLPP_ATTRIBUTE_H
 
 
-#include <glibmm/ustring.h>
-
+#include <libxml++/string.h>
 #include <libxml++/nodes/node.h>
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -36,16 +35,16 @@
    * See also Node::get_namespace_prefix() and Node::get_namespace_uri()
    * @returns The attributes's name.
    */
-  Glib::ustring get_name() const;
+  xmlpp::string get_name() const;
 
   /** Get the value of this attribute.
    * @returns The attributes's value.
    */
-  Glib::ustring get_value() const;
+  xmlpp::string get_value() const;
 
   /** Set the value of this attribute.
    */
-  void set_value(const Glib::ustring& value);
+  void set_value(const xmlpp::string& value);
 
   ///Access the underlying libxml implementation.
   _xmlAttr* cobj();
diff -ruN a/libxml++/document.cc b/libxml++/document.cc
--- a/libxml++/document.cc	2010-07-28 11:40:54.190071776 -0400
+++ b/libxml++/document.cc	2010-07-28 14:19:04.911004167 -0400
@@ -151,7 +151,7 @@
 
 Document::Init Document::init_;
 
-Document::Document(const Glib::ustring& version)
+Document::Document(const xmlpp::string& version)
   : impl_(xmlNewDoc((const xmlChar*)version.c_str()))
 {
   impl_->_private = this;
@@ -168,9 +168,9 @@
   xmlFreeDoc(impl_);
 }
 
-Glib::ustring Document::get_encoding() const
+xmlpp::string Document::get_encoding() const
 {
-  Glib::ustring encoding;
+  xmlpp::string encoding;
   if(impl_->encoding)
     encoding = (const char*)impl_->encoding;
     
@@ -189,9 +189,9 @@
   return reinterpret_cast<Dtd*>(dtd->_private);
 }
 
-void Document::set_internal_subset(const Glib::ustring& name,
-                                   const Glib::ustring& external_id,
-                                   const Glib::ustring& system_id)
+void Document::set_internal_subset(const xmlpp::string& name,
+                                   const xmlpp::string& external_id,
+                                   const xmlpp::string& system_id)
 {
   xmlDtd* dtd = xmlCreateIntSubset(impl_,
 				   (const xmlChar*)name.c_str(),
@@ -211,9 +211,9 @@
     return reinterpret_cast<Element*>(root->_private);
 }
 
-Element* Document::create_root_node(const Glib::ustring& name,
-                                    const Glib::ustring& ns_uri,
-                                    const Glib::ustring& ns_prefix)
+Element* Document::create_root_node(const xmlpp::string& name,
+                                    const xmlpp::string& ns_uri,
+                                    const xmlpp::string& ns_prefix)
 {
   xmlNode* node = xmlNewDocNode(impl_, 0, (const xmlChar*)name.c_str(), 0);
   xmlDocSetRootElement(impl_, node);
@@ -248,7 +248,7 @@
   return get_root_node();
 }
 
-CommentNode* Document::add_comment(const Glib::ustring& content)
+CommentNode* Document::add_comment(const xmlpp::string& content)
 {
   xmlNode* node = xmlNewComment((const xmlChar*)content.c_str());
   if(!node)
@@ -265,39 +265,39 @@
   return static_cast<CommentNode*>(node->_private);
 }
 
-void Document::write_to_file(const Glib::ustring& filename, const Glib::ustring& encoding)
+void Document::write_to_file(const xmlpp::string& filename, const xmlpp::string& encoding)
 {
   do_write_to_file(filename, encoding, false);
 }
 
-void Document::write_to_file_formatted(const Glib::ustring& filename, const Glib::ustring& encoding)
+void Document::write_to_file_formatted(const xmlpp::string& filename, const xmlpp::string& encoding)
 {
   do_write_to_file(filename, encoding, true);
 }
 
-Glib::ustring Document::write_to_string(const Glib::ustring& encoding)
+xmlpp::string Document::write_to_string(const xmlpp::string& encoding)
 {
   return do_write_to_string(encoding, false);
 }
 
-Glib::ustring Document::write_to_string_formatted(const Glib::ustring& encoding)
+xmlpp::string Document::write_to_string_formatted(const xmlpp::string& encoding)
 {
   return do_write_to_string(encoding, true);
 }
 
-void Document::write_to_stream(std::ostream& output, const Glib::ustring& encoding)
+void Document::write_to_stream(std::ostream& output, const xmlpp::string& encoding)
 {
   do_write_to_stream(output, encoding.empty()?get_encoding():encoding, false);
 }
 
-void Document::write_to_stream_formatted(std::ostream& output, const Glib::ustring& encoding)
+void Document::write_to_stream_formatted(std::ostream& output, const xmlpp::string& encoding)
 {
   do_write_to_stream(output, encoding.empty()?get_encoding():encoding, true);
 }
 
 void Document::do_write_to_file(
-    const Glib::ustring& filename,
-    const Glib::ustring& encoding,
+    const xmlpp::string& filename,
+    const xmlpp::string& encoding,
     bool format)
 {
   KeepBlanks k(KeepBlanks::Default);
@@ -316,8 +316,8 @@
   }
 }
 
-Glib::ustring Document::do_write_to_string(
-    const Glib::ustring& encoding,
+xmlpp::string Document::do_write_to_string(
+    const xmlpp::string& encoding,
     bool format)
 {
   KeepBlanks k(KeepBlanks::Default);
@@ -332,16 +332,16 @@
     #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
     throw exception("do_write_to_string() failed.");
     #else
-    return Glib::ustring();
+    return xmlpp::string();
     #endif //LIBXMLCPP_EXCEPTIONS_ENABLED
   }
 
-  // Create a Glib::ustring copy of the buffer
+  // Create a xmlpp::string copy of the buffer
 
-  // Here we force the use of Glib::ustring::ustring( InputIterator begin, InputIterator end )
-  // instead of Glib::ustring::ustring( const char*, size_type ) because it
+  // Here we force the use of xmlpp::string::string( InputIterator begin, InputIterator end )
+  // instead of xmlpp::string::string( const char*, size_type ) because it
   // expects the length of the string in characters, not in bytes.
-  Glib::ustring result( reinterpret_cast<const char *>(buffer), reinterpret_cast<const char *>(buffer + length) );
+  xmlpp::string result( reinterpret_cast<const char *>(buffer), reinterpret_cast<const char *>(buffer + length) );
 
   // Deletes the original buffer
   xmlFree(buffer);
@@ -349,16 +349,16 @@
   return result;
 }
 
-void Document::do_write_to_stream(std::ostream& output, const Glib::ustring& encoding, bool format)
+void Document::do_write_to_stream(std::ostream& output, const xmlpp::string& encoding, bool format)
 {
   // TODO assert document encoding is UTF-8 if encoding is different than UTF-8
   OStreamOutputBuffer buffer(output, encoding);
   xmlSaveFormatFileTo(buffer.cobj(), impl_, encoding.c_str(), format?1:0);
 }
 
-void Document::set_entity_declaration(const Glib::ustring& name, XmlEntityType type,
-                              const Glib::ustring& publicId, const Glib::ustring& systemId,
-                              const Glib::ustring& content)
+void Document::set_entity_declaration(const xmlpp::string& name, XmlEntityType type,
+                              const xmlpp::string& publicId, const xmlpp::string& systemId,
+                              const xmlpp::string& content)
 {
   xmlAddDocEntity( impl_, (const xmlChar*) name.c_str(), type, 
     publicId.empty() ? (const xmlChar*)0 : (const xmlChar*)publicId.c_str(),
@@ -366,7 +366,7 @@
     (const xmlChar*) content.c_str() );
 }
 
-_xmlEntity* Document::get_entity(const Glib::ustring& name)
+_xmlEntity* Document::get_entity(const xmlpp::string& name)
 {
   return xmlGetDocEntity(impl_, (const xmlChar*) name.c_str());
 }
diff -ruN a/libxml++/document.h b/libxml++/document.h
--- a/libxml++/document.h	2010-07-28 11:40:54.168082434 -0400
+++ b/libxml++/document.h	2010-07-28 14:19:04.910006282 -0400
@@ -60,18 +60,18 @@
   friend class SaxParser;
 
 public:
-  explicit Document(const Glib::ustring& version = "1.0");
+  explicit Document(const xmlpp::string& version = "1.0");
   virtual ~Document();
   
   /** @return The encoding used in the source from which the document has been loaded.
     */
-  Glib::ustring get_encoding() const;
+  xmlpp::string get_encoding() const;
   
   Dtd* get_internal_subset() const;
   
-  void set_internal_subset(const Glib::ustring& name,
-                           const Glib::ustring& external_id,
-                           const Glib::ustring& system_id);
+  void set_internal_subset(const xmlpp::string& name,
+                           const xmlpp::string& external_id,
+                           const xmlpp::string& system_id);
 
   /** Return the root node.
    * This function does _not_ create a default root node if it doesn't exist.
@@ -87,9 +87,9 @@
      the namespace URI will be the default namespace.
    * @return A pointer to the new root node
    */
-  Element* create_root_node(const Glib::ustring& name,
-                            const Glib::ustring& ns_uri = Glib::ustring(),
-                            const Glib::ustring& ns_prefix = Glib::ustring() );
+  Element* create_root_node(const xmlpp::string& name,
+                            const xmlpp::string& ns_uri = xmlpp::string(),
+                            const xmlpp::string& ns_prefix = xmlpp::string() );
 
   /** Creates a root node by importing the node from another document, without affecting the source node.
    * @param node The node to copy and insert as the root node of the document
@@ -103,14 +103,14 @@
    * @param content The text. This should be unescaped - see ContentNode::set_content().
    * @returns The new comment node.
    */
-  CommentNode* add_comment(const Glib::ustring& content);
+  CommentNode* add_comment(const xmlpp::string& content);
 
   //TODO: Use std::string for filenames.
   /** Write the document to a file.
    * @param filename
    * @param encoding If not provided, UTF-8 is used
    */
-  void write_to_file(const Glib::ustring& filename, const Glib::ustring& encoding = Glib::ustring());
+  void write_to_file(const xmlpp::string& filename, const xmlpp::string& encoding = xmlpp::string());
 
   /** Write the document to a file.
    * The output is formatted by inserting whitespaces, which is easier to read for a human,
@@ -118,12 +118,12 @@
    * @param filename
    * @param encoding If not provided, UTF-8 is used
    */
-  void write_to_file_formatted(const Glib::ustring& filename, const Glib::ustring& encoding = Glib::ustring());
+  void write_to_file_formatted(const xmlpp::string& filename, const xmlpp::string& encoding = xmlpp::string());
 
   /** Write the document to the memory.
    * @param encoding If not provided, UTF-8 is used
    */
-  Glib::ustring write_to_string(const Glib::ustring& encoding = Glib::ustring());
+  xmlpp::string write_to_string(const xmlpp::string& encoding = xmlpp::string());
 
   /** Write the document to the memory.
    * The output is formatted by inserting whitespaces, which is easier to read for a human,
@@ -131,7 +131,7 @@
    * @param encoding If not provided, UTF-8 is used
    * @return The written document.
    */
-  Glib::ustring write_to_string_formatted(const Glib::ustring& encoding = Glib::ustring());
+  xmlpp::string write_to_string_formatted(const xmlpp::string& encoding = xmlpp::string());
 
   /** Write the document to a std::ostream.
    * @param output A reference to the stream in which the document will be written
@@ -139,7 +139,7 @@
    * @warning This method is much less efficient than write_to_string if you want to dump the
    * document to a buffer or the standard output. Writing to a fstream is almost as fast as write_to_file
    */
-  void write_to_stream(std::ostream& output, const Glib::ustring& encoding = Glib::ustring());
+  void write_to_stream(std::ostream& output, const xmlpp::string& encoding = xmlpp::string());
 
   /** Write the document to a std::ostream.
    * The output is formatted by inserting whitespaces, which is easier to read for a human,
@@ -148,7 +148,7 @@
    * @param encoding If not provided, UTF-8 is used
    * @warning See write_to_stream
    */
-  void write_to_stream_formatted(std::ostream & output, const Glib::ustring& encoding = Glib::ustring());
+  void write_to_stream_formatted(std::ostream & output, const xmlpp::string& encoding = xmlpp::string());
 
   /** Add an Entity declaration to the document.
    * @param name The name of the entity that will be used in an entity reference.
@@ -158,9 +158,9 @@
    * @param content The value of the Entity. In entity reference substitutions, this
    * is the replacement value.
    */
-  virtual void set_entity_declaration(const Glib::ustring& name, XmlEntityType type,
-                                      const Glib::ustring& publicId, const Glib::ustring& systemId,
-                                      const Glib::ustring& content);
+  virtual void set_entity_declaration(const xmlpp::string& name, XmlEntityType type,
+                                      const xmlpp::string& publicId, const xmlpp::string& systemId,
+                                      const xmlpp::string& content);
 
   ///Access the underlying libxml implementation.
   _xmlDoc* cobj();
@@ -174,12 +174,12 @@
    * @param name Then name of the entity to get.
    * @returns A pointer to the libxml2 entity structure.
    */
-  _xmlEntity* get_entity(const Glib::ustring& name);
+  _xmlEntity* get_entity(const xmlpp::string& name);
 
 private:
-  virtual void do_write_to_file(const Glib::ustring& filename, const Glib::ustring& encoding, bool format);
-  virtual Glib::ustring do_write_to_string(const Glib::ustring& encoding, bool format);
-  virtual void do_write_to_stream(std::ostream& output, const Glib::ustring& encoding, bool format);
+  virtual void do_write_to_file(const xmlpp::string& filename, const xmlpp::string& encoding, bool format);
+  virtual xmlpp::string do_write_to_string(const xmlpp::string& encoding, bool format);
+  virtual void do_write_to_stream(std::ostream& output, const xmlpp::string& encoding, bool format);
 
   static Init init_;
 
diff -ruN a/libxml++/dtd.cc b/libxml++/dtd.cc
--- a/libxml++/dtd.cc	2010-07-28 11:40:54.174042422 -0400
+++ b/libxml++/dtd.cc	2010-07-28 14:19:04.910006282 -0400
@@ -21,17 +21,17 @@
 { 
 }
 
-Glib::ustring Dtd::get_name() const
+xmlpp::string Dtd::get_name() const
 {
   return (char*)impl_->name;
 }
 
-Glib::ustring Dtd::get_external_id() const
+xmlpp::string Dtd::get_external_id() const
 {
   return (char*)impl_->ExternalID;
 }
 
-Glib::ustring Dtd::get_system_id() const
+xmlpp::string Dtd::get_system_id() const
 {
   return (char*)impl_->SystemID;
 }
diff -ruN a/libxml++/dtd.h b/libxml++/dtd.h
--- a/libxml++/dtd.h	2010-07-28 11:40:54.211004751 -0400
+++ b/libxml++/dtd.h	2010-07-28 14:19:04.911004167 -0400
@@ -29,9 +29,9 @@
   Dtd(_xmlDtd* dtd);
   ~Dtd();
 
-  Glib::ustring get_name() const;
-  Glib::ustring get_external_id() const;
-  Glib::ustring get_system_id() const;
+  xmlpp::string get_name() const;
+  xmlpp::string get_external_id() const;
+  xmlpp::string get_system_id() const;
   
   /** Access the underlying libxml implementation.
    */
diff -ruN a/libxml++/exceptions/exception.cc b/libxml++/exceptions/exception.cc
--- a/libxml++/exceptions/exception.cc	2010-07-28 11:40:54.186085053 -0400
+++ b/libxml++/exceptions/exception.cc	2010-07-28 14:19:04.911004167 -0400
@@ -2,7 +2,7 @@
 
 namespace xmlpp {
   
-exception::exception(const Glib::ustring& message)
+exception::exception(const xmlpp::string& message)
 : message_(message)
 {
 }
diff -ruN a/libxml++/exceptions/exception.h b/libxml++/exceptions/exception.h
--- a/libxml++/exceptions/exception.h	2010-07-28 11:40:54.185078312 -0400
+++ b/libxml++/exceptions/exception.h	2010-07-28 14:19:04.911004167 -0400
@@ -23,8 +23,8 @@
 #define __LIBXMLPP_EXCEPTION_H
 
 #include <exception>
-#include <glibmm/ustring.h>
 
+#include <libxml++/string.h>
 #include <libxml++config.h>
 
 namespace xmlpp
@@ -35,7 +35,7 @@
 class LIBXMLPP_API exception: public std::exception
 {
 public:
-  explicit exception(const Glib::ustring& message);
+  explicit exception(const xmlpp::string& message);
   virtual ~exception() throw();
 
   virtual const char* what() const throw();
@@ -43,7 +43,7 @@
   virtual exception * Clone() const;
 
 private:
-  Glib::ustring message_;
+  xmlpp::string message_;
 };
 
 } // namespace xmlpp
diff -ruN a/libxml++/exceptions/internal_error.cc b/libxml++/exceptions/internal_error.cc
--- a/libxml++/exceptions/internal_error.cc	2010-07-28 11:40:54.186085053 -0400
+++ b/libxml++/exceptions/internal_error.cc	2010-07-28 14:19:04.911004167 -0400
@@ -3,7 +3,7 @@
 
 namespace xmlpp {
 
-internal_error::internal_error(const Glib::ustring& message)
+internal_error::internal_error(const xmlpp::string& message)
 : exception(message)
 {
 }
diff -ruN a/libxml++/exceptions/internal_error.h b/libxml++/exceptions/internal_error.h
--- a/libxml++/exceptions/internal_error.h	2010-07-28 11:40:54.185078312 -0400
+++ b/libxml++/exceptions/internal_error.h	2010-07-28 14:19:04.911004167 -0400
@@ -23,16 +23,16 @@
 #define __LIBXMLPP_INTERNAL_ERROR_H
 
 #include <libxml++/exceptions/exception.h>
+#include <libxml++/string.h>
 
 #include <exception>
-#include <glibmm/ustring.h>
 
 namespace xmlpp {
   
 class internal_error: public exception
 {
 public:
-  explicit internal_error(const Glib::ustring& message);
+  explicit internal_error(const xmlpp::string& message);
   virtual ~internal_error() throw();
 
   virtual void Raise() const;
diff -ruN a/libxml++/exceptions/parse_error.cc b/libxml++/exceptions/parse_error.cc
--- a/libxml++/exceptions/parse_error.cc	2010-07-28 11:40:54.185078312 -0400
+++ b/libxml++/exceptions/parse_error.cc	2010-07-28 14:19:04.910006282 -0400
@@ -2,7 +2,7 @@
 
 namespace xmlpp {
 
-parse_error::parse_error(const Glib::ustring& message)
+parse_error::parse_error(const xmlpp::string& message)
 : exception(message)
 {
 }
diff -ruN a/libxml++/exceptions/parse_error.h b/libxml++/exceptions/parse_error.h
--- a/libxml++/exceptions/parse_error.h	2010-07-28 11:40:54.185078312 -0400
+++ b/libxml++/exceptions/parse_error.h	2010-07-28 14:19:04.911004167 -0400
@@ -23,9 +23,9 @@
 #define __LIBXMLPP_PARSE_ERROR_H
 
 #include <libxml++/exceptions/exception.h>
+#include <libxml++/string.h>
 
 #include <exception>
-#include <glibmm/ustring.h>
 
 namespace xmlpp
 {
@@ -35,7 +35,7 @@
 class parse_error: public exception
 {
 public:
-  explicit parse_error(const Glib::ustring& message);
+  explicit parse_error(const xmlpp::string& message);
   virtual ~parse_error() throw();
 
   virtual void Raise() const;
diff -ruN a/libxml++/exceptions/validity_error.cc b/libxml++/exceptions/validity_error.cc
--- a/libxml++/exceptions/validity_error.cc	2010-07-28 11:40:54.184073500 -0400
+++ b/libxml++/exceptions/validity_error.cc	2010-07-28 14:19:04.910006282 -0400
@@ -2,7 +2,7 @@
 
 namespace xmlpp {
 
-validity_error::validity_error(const Glib::ustring& message)
+validity_error::validity_error(const xmlpp::string& message)
 : parse_error(message)
 {
 }
diff -ruN a/libxml++/exceptions/validity_error.h b/libxml++/exceptions/validity_error.h
--- a/libxml++/exceptions/validity_error.h	2010-07-28 11:40:54.186085053 -0400
+++ b/libxml++/exceptions/validity_error.h	2010-07-28 14:19:04.911004167 -0400
@@ -32,7 +32,7 @@
 class validity_error: public parse_error
 {
 public:
-  explicit validity_error(const Glib::ustring& message);
+  explicit validity_error(const xmlpp::string& message);
   virtual ~validity_error() throw();
 
   virtual void Raise() const;
diff -ruN a/libxml++/io/ostreamoutputbuffer.cc b/libxml++/io/ostreamoutputbuffer.cc
--- a/libxml++/io/ostreamoutputbuffer.cc	2010-07-28 11:40:54.207072122 -0400
+++ b/libxml++/io/ostreamoutputbuffer.cc	2010-07-28 14:19:04.911004167 -0400
@@ -13,7 +13,7 @@
 {
   OStreamOutputBuffer::OStreamOutputBuffer(
       std::ostream & output,
-      const Glib::ustring& encoding)
+      const xmlpp::string& encoding)
     : OutputBuffer(encoding), output_(output)
   {
   }
diff -ruN a/libxml++/io/ostreamoutputbuffer.h b/libxml++/io/ostreamoutputbuffer.h
--- a/libxml++/io/ostreamoutputbuffer.h	2010-07-28 11:40:54.207072122 -0400
+++ b/libxml++/io/ostreamoutputbuffer.h	2010-07-28 14:19:04.911004167 -0400
@@ -26,7 +26,7 @@
        * @param encoding Charset in which data will be encoded before being
        * sent to the stream
        */
-      OStreamOutputBuffer(std::ostream& output, const Glib::ustring& encoding = Glib::ustring());
+      OStreamOutputBuffer(std::ostream& output, const xmlpp::string& encoding = xmlpp::string());
       virtual ~OStreamOutputBuffer();
 
     private:
diff -ruN a/libxml++/io/outputbuffer.cc b/libxml++/io/outputbuffer.cc
--- a/libxml++/io/outputbuffer.cc	2010-07-28 11:40:54.211004751 -0400
+++ b/libxml++/io/outputbuffer.cc	2010-07-28 14:19:04.911004167 -0400
@@ -32,7 +32,7 @@
 
 
   OutputBuffer::OutputBuffer(
-      const Glib::ustring& encoding)
+      const xmlpp::string& encoding)
   {
     // we got to initialise the char encoding handler
     // The code is almost cut/paste from xmlSaveFormatFileEnc
diff -ruN a/libxml++/io/outputbuffer.h b/libxml++/io/outputbuffer.h
--- a/libxml++/io/outputbuffer.h	2010-07-28 11:40:54.207072122 -0400
+++ b/libxml++/io/outputbuffer.h	2010-07-28 14:19:04.911004167 -0400
@@ -10,7 +10,7 @@
 #ifndef __LIBXMLPP_OUTPUTBUFFER_H
 #define __LIBXMLPP_OUTPUTBUFFER_H
 
-#include <glibmm/ustring.h>
+#include <libxml++/string.h>
 #include <libxml++/noncopyable.h>
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -40,7 +40,7 @@
        * @warning The encoding is done by libxml. As a consequence, libxml must
        * have a translator to the target encoding.
        */
-      OutputBuffer(const Glib::ustring& encoding = Glib::ustring());
+      OutputBuffer(const xmlpp::string& encoding = xmlpp::string());
       virtual ~OutputBuffer();
 
     public:
diff -ruN a/libxml++/libxml++.h b/libxml++/libxml++.h
--- a/libxml++/libxml++.h	2010-07-28 11:40:54.171075223 -0400
+++ b/libxml++/libxml++.h	2010-07-28 14:19:04.910006282 -0400
@@ -62,5 +62,6 @@
 #include <libxml++/validators/validator.h>
 #include <libxml++/validators/dtdvalidator.h>
 #include <libxml++/validators/schemavalidator.h>
+#include <libxml++/string.h>
 
 #endif //__LIBXMLCPP_H
diff -ruN a/libxml++/nodes/contentnode.cc b/libxml++/nodes/contentnode.cc
--- a/libxml++/nodes/contentnode.cc	2010-07-28 11:40:54.180023104 -0400
+++ b/libxml++/nodes/contentnode.cc	2010-07-28 14:19:04.910006282 -0400
@@ -19,21 +19,21 @@
 ContentNode::~ContentNode()
 {}
 
-Glib::ustring ContentNode::get_content() const
+xmlpp::string ContentNode::get_content() const
 {
   if(cobj()->type == XML_ELEMENT_NODE)
   {
     #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
     throw internal_error("this node type doesn't have content");
     #else
-    return Glib::ustring();
+    return xmlpp::string();
     #endif //LIBXMLCPP_EXCEPTIONS_ENABLED
   }
 
   return cobj()->content ? (char*)cobj()->content : "";
 }
 
-void ContentNode::set_content(const Glib::ustring& content)
+void ContentNode::set_content(const xmlpp::string& content)
 {
    if(cobj()->type == XML_ELEMENT_NODE)
    {
diff -ruN a/libxml++/nodes/contentnode.h b/libxml++/nodes/contentnode.h
--- a/libxml++/nodes/contentnode.h	2010-07-28 11:40:54.178024048 -0400
+++ b/libxml++/nodes/contentnode.h	2010-07-28 14:19:04.910006282 -0400
@@ -24,13 +24,13 @@
    * @returns The text. Note that the 5 predefined entities (&amp;, &quot;, &lt;, &qt, &apos;)
    * are always resolved, so this content will show their human-readable equivalents.
    */
-  Glib::ustring get_content() const;
+  xmlpp::string get_content() const;
 
   /** Set the text of this content node
    * @param content The text. This must be unescaped, meaning that the predefined entities will be created for you where necessary.
    * See get_content().
    */
-  void set_content(const Glib::ustring& content);
+  void set_content(const xmlpp::string& content);
 
   /// @returns Whether this node contains only white space, or is empty.
   bool is_white_space() const;
diff -ruN a/libxml++/nodes/element.cc b/libxml++/nodes/element.cc
--- a/libxml++/nodes/element.cc	2010-07-28 11:40:54.177015433 -0400
+++ b/libxml++/nodes/element.cc	2010-07-28 14:19:04.910006282 -0400
@@ -36,8 +36,8 @@
   return const_cast<Element*>(this)->get_attributes();
 }
 
-Attribute* Element::get_attribute(const Glib::ustring& name,
-                                  const Glib::ustring& ns_prefix) const
+Attribute* Element::get_attribute(const xmlpp::string& name,
+                                  const xmlpp::string& ns_prefix) const
 {
   if(ns_prefix.empty())
   {
@@ -49,7 +49,7 @@
   }
   else
   {
-    Glib::ustring ns_uri = get_namespace_uri_for_prefix(ns_prefix);  
+    xmlpp::string ns_uri = get_namespace_uri_for_prefix(ns_prefix);  
     xmlAttr* attr = xmlHasNsProp(const_cast<xmlNode*>(cobj()), (const xmlChar*)name.c_str(),
                                  (const xmlChar*)ns_uri.c_str());
     if( attr )
@@ -61,14 +61,14 @@
   return 0;
 }
 
-Glib::ustring Element::get_attribute_value(const Glib::ustring& name, const Glib::ustring& ns_prefix) const
+xmlpp::string Element::get_attribute_value(const xmlpp::string& name, const xmlpp::string& ns_prefix) const
 {
   const Attribute* attr = get_attribute(name, ns_prefix);
-  return attr ? attr->get_value() : Glib::ustring();
+  return attr ? attr->get_value() : xmlpp::string();
 }
 
-Attribute* Element::set_attribute(const Glib::ustring& name, const Glib::ustring& value,
-                                  const Glib::ustring& ns_prefix)
+Attribute* Element::set_attribute(const xmlpp::string& name, const xmlpp::string& value,
+                                  const xmlpp::string& ns_prefix)
 {
   xmlAttr* attr = 0;
 
@@ -100,7 +100,7 @@
     return 0;
 }
 
-void Element::remove_attribute(const Glib::ustring& name, const Glib::ustring& ns_prefix)
+void Element::remove_attribute(const xmlpp::string& name, const xmlpp::string& ns_prefix)
 {
   if (ns_prefix.empty())
     xmlUnsetProp(cobj(), (const xmlChar*)name.c_str());
@@ -133,7 +133,7 @@
   return 0;
 }
 
-void Element::set_child_text(const Glib::ustring& content)
+void Element::set_child_text(const xmlpp::string& content)
 {
   TextNode* node = get_child_text();
   if(node)
@@ -142,7 +142,7 @@
     add_child_text(content);
 }
 
-TextNode* Element::add_child_text(const Glib::ustring& content)
+TextNode* Element::add_child_text(const xmlpp::string& content)
 {
   if(cobj()->type == XML_ELEMENT_NODE)
   {
@@ -156,7 +156,7 @@
   return 0;
 }
 
-TextNode* Element::add_child_text(xmlpp::Node* previous_sibling, const Glib::ustring& content)
+TextNode* Element::add_child_text(xmlpp::Node* previous_sibling, const xmlpp::string& content)
 {
   if(!previous_sibling)
     return 0;
@@ -173,7 +173,7 @@
   return 0;
 }
 
-TextNode* Element::add_child_text_before(xmlpp::Node* next_sibling, const Glib::ustring& content)
+TextNode* Element::add_child_text_before(xmlpp::Node* next_sibling, const xmlpp::string& content)
 {
   if(!next_sibling)
     return 0;
@@ -195,7 +195,7 @@
   return get_child_text() != 0;
 }
 
-void Element::set_namespace_declaration(const Glib::ustring& ns_uri, const Glib::ustring& ns_prefix)
+void Element::set_namespace_declaration(const xmlpp::string& ns_uri, const xmlpp::string& ns_prefix)
 {
   //Create a new namespace declaration for this element:
   xmlNewNs(cobj(), (const xmlChar*)(ns_uri.empty() ? 0 : ns_uri.c_str()),
@@ -203,9 +203,9 @@
   //We ignore the returned xmlNS*. Hopefully this is owned by the node. murrayc.
 }
 
-Glib::ustring Element::get_namespace_uri_for_prefix(const Glib::ustring& ns_prefix) const
+xmlpp::string Element::get_namespace_uri_for_prefix(const xmlpp::string& ns_prefix) const
 {
-  Glib::ustring result;
+  xmlpp::string result;
   
   //Find the namespace:
   const xmlNs* ns = xmlSearchNs( cobj()->doc, const_cast<xmlNode*>(cobj()), (xmlChar*)ns_prefix.c_str() );
@@ -220,7 +220,7 @@
 }
 
 
-CommentNode* Element::add_child_comment(const Glib::ustring& content)
+CommentNode* Element::add_child_comment(const xmlpp::string& content)
 {
   xmlNode* node = xmlNewComment((const xmlChar*)content.c_str());
  
diff -ruN a/libxml++/nodes/element.h b/libxml++/nodes/element.h
--- a/libxml++/nodes/element.h	2010-07-28 11:40:54.180023104 -0400
+++ b/libxml++/nodes/element.h	2010-07-28 14:19:04.910006282 -0400
@@ -28,7 +28,7 @@
    * @param ns_uri The namespace to associate with the prefix, or to use as the default namespace if no prefix is specified.
    * @param ns_prefix The namespace prefix. If no prefix is specified then the namespace URI will be the default namespace.
    */
-  void set_namespace_declaration(const Glib::ustring& ns_uri, const Glib::ustring& ns_prefix = Glib::ustring());
+  void set_namespace_declaration(const xmlpp::string& ns_uri, const xmlpp::string& ns_prefix = xmlpp::string());
 
   /** Obtain the list of attributes for this element.
    * @returns The list of attributes.
@@ -43,8 +43,8 @@
   // FIXME: the following only returns explicitely provided
   // attributes, not default ones declared in the dtd.
   // TOOD: Is this still true? murrayc
-  Attribute* get_attribute(const Glib::ustring& name,
-                           const Glib::ustring& ns_prefix = Glib::ustring()) const;
+  Attribute* get_attribute(const xmlpp::string& name,
+                           const xmlpp::string& ns_prefix = xmlpp::string()) const;
 
   /** Get the value of the attribute with this name, and optionally with this namespace.
    * For finer control, you might use get_attribute() and use the methods of the Attribute class.
@@ -54,8 +54,8 @@
    *
    * @newin{2,20}
    */
-  Glib::ustring get_attribute_value(const Glib::ustring& name, 
-                                    const Glib::ustring& ns_prefix = Glib::ustring()) const;
+  xmlpp::string get_attribute_value(const xmlpp::string& name, 
+                                    const xmlpp::string& ns_prefix = xmlpp::string()) const;
 
   /** Set the value of the attribute with this name, and optionally with this namespace.
    * A matching attribute will be added if no matching attribute already exists.
@@ -65,15 +65,15 @@
    * @param ns_prefix Namespace prefix. If the prefix has not been declared then this method will throw an exception.
    * @return The attribute that was changed, or 0 is no suitable Attribute was found.
    */
-  Attribute* set_attribute(const Glib::ustring& name, const Glib::ustring& value,
-                           const Glib::ustring& ns_prefix = Glib::ustring());
+  Attribute* set_attribute(const xmlpp::string& name, const xmlpp::string& value,
+                           const xmlpp::string& ns_prefix = xmlpp::string());
 
   /** Remove the attribute with this name, and optionally with this namespace.
    * @param name The name of the attribute to be removed
    * @param ns_prefix Namespace prefix. If specified, the attribute will be removed only if the attribute has this namespace.
    */
-  void remove_attribute(const Glib::ustring& name,
-                        const Glib::ustring& ns_prefix = Glib::ustring());
+  void remove_attribute(const xmlpp::string& name,
+                        const xmlpp::string& ns_prefix = xmlpp::string());
   
   
   /** Get the first child text content node.
@@ -92,7 +92,7 @@
    * @param content The text. This should be unescaped - see ContentNode::set_content().
    * @returns The new text node.
    */
-  TextNode* add_child_text(const Glib::ustring& content = Glib::ustring());
+  TextNode* add_child_text(const xmlpp::string& content = xmlpp::string());
 
   /** Add a new text node after the specified existing child node.
    *
@@ -102,7 +102,7 @@
    * @param content The text. This should be unescaped - see ContentNode::set_content().
    * @returns The new text node.
    */
-  TextNode* add_child_text(xmlpp::Node* previous_sibling, const Glib::ustring& content = Glib::ustring());
+  TextNode* add_child_text(xmlpp::Node* previous_sibling, const xmlpp::string& content = xmlpp::string());
 
   /** Add a new text node before the specified existing child node.
    *
@@ -112,13 +112,13 @@
    * @param content The text. This should be unescaped - see ContentNode::set_content().
    * @returns The new text node.
    */
-  TextNode* add_child_text_before(xmlpp::Node* next_sibling, const Glib::ustring& content = Glib::ustring());
+  TextNode* add_child_text_before(xmlpp::Node* next_sibling, const xmlpp::string& content = xmlpp::string());
 
   /** Set the text of the first text node, adding one if necessary.
    * This is a convenience method, meant as an alternative to iterating over all the child nodes to find the first suitable node then and setting the text directly.
    * @param content The text. This should be unescaped - see ContentNode::set_content().
    */
-  void set_child_text(const Glib::ustring& content);
+  void set_child_text(const xmlpp::string& content);
 
   /** Discover whether one of the child nodes is a text node.
    * This is a convenience method, meant as an alternative to iterating over all the child nodes and examining them directly.
@@ -130,10 +130,10 @@
    * @param content The text. This should be unescaped - see ContentNode::set_content().
    * @returns The new comment node.
    */
-  CommentNode* add_child_comment(const Glib::ustring& content);
+  CommentNode* add_child_comment(const xmlpp::string& content);
 
 protected:
-  Glib::ustring get_namespace_uri_for_prefix(const Glib::ustring& ns_prefix) const;
+  xmlpp::string get_namespace_uri_for_prefix(const xmlpp::string& ns_prefix) const;
 };
 
 } // namespace xmlpp
diff -ruN a/libxml++/nodes/entityreference.cc b/libxml++/nodes/entityreference.cc
--- a/libxml++/nodes/entityreference.cc	2010-07-28 11:40:54.179008660 -0400
+++ b/libxml++/nodes/entityreference.cc	2010-07-28 14:19:04.910006282 -0400
@@ -19,9 +19,9 @@
 EntityReference::~EntityReference()
 {}
 
-Glib::ustring EntityReference::get_resolved_text() const
+xmlpp::string EntityReference::get_resolved_text() const
 {
-  Glib::ustring result;
+  xmlpp::string result;
 
   //Get the child xmlEntity node (there should only be 1).
   xmlNode* cChild = cobj()->children;
@@ -36,9 +36,9 @@
   return result;
 }
 
-Glib::ustring EntityReference::get_original_text() const
+xmlpp::string EntityReference::get_original_text() const
 {
-  Glib::ustring result;
+  xmlpp::string result;
 
   //Get the child xmlEntity node (there should only be 1).
   xmlNode* cChild = cobj()->children;
diff -ruN a/libxml++/nodes/entityreference.h b/libxml++/nodes/entityreference.h
--- a/libxml++/nodes/entityreference.h	2010-07-28 11:40:54.178024048 -0400
+++ b/libxml++/nodes/entityreference.h	2010-07-28 14:19:04.910006282 -0400
@@ -23,11 +23,11 @@
   /** Get the text to which this entity reference would have resolved if the XML document had been parsed with Parser::set_substitute_entities(true).
    * @returns The unescaped text.
    */
-  Glib::ustring get_resolved_text() const;
+  xmlpp::string get_resolved_text() const;
 
   //TODO: I'm not sure what this is. So far it seems to be the same as get_resolved_text().
   //      Maybe it's for nested entity declarations, though I don't know if that is even possile. murrayc.
-  Glib::ustring get_original_text() const;
+  xmlpp::string get_original_text() const;
 
 };
 
diff -ruN a/libxml++/nodes/node.cc b/libxml++/nodes/node.cc
--- a/libxml++/nodes/node.cc	2010-07-28 11:40:54.178024048 -0400
+++ b/libxml++/nodes/node.cc	2010-07-28 14:19:04.910006282 -0400
@@ -59,7 +59,7 @@
             static_cast<Node*>(cobj()->prev->_private) : 0;
 }
 
-Node::NodeList Node::get_children(const Glib::ustring& name)
+Node::NodeList Node::get_children(const xmlpp::string& name)
 {
    xmlNode* child = impl_->children;
    if(!child)
@@ -89,13 +89,13 @@
    return children;
 }
 
-const Node::NodeList Node::get_children(const Glib::ustring& name) const
+const Node::NodeList Node::get_children(const xmlpp::string& name) const
 {
   return const_cast<Node*>(this)->get_children(name);
 }
 
-Element* Node::add_child(const Glib::ustring& name,
-                         const Glib::ustring& ns_prefix)
+Element* Node::add_child(const xmlpp::string& name,
+                         const xmlpp::string& ns_prefix)
 {
   _xmlNode* child = create_new_child_node(name, ns_prefix);
   if(!child)
@@ -109,8 +109,8 @@
 }
 
 Element* Node::add_child(xmlpp::Node* previous_sibling, 
-                         const Glib::ustring& name,
-                         const Glib::ustring& ns_prefix)
+                         const xmlpp::string& name,
+                         const xmlpp::string& ns_prefix)
 {
   if(!previous_sibling)
     return 0;
@@ -127,8 +127,8 @@
 }
 
 Element* Node::add_child_before(xmlpp::Node* next_sibling, 
-                         const Glib::ustring& name,
-                         const Glib::ustring& ns_prefix)
+                         const xmlpp::string& name,
+                         const xmlpp::string& ns_prefix)
 {
   if(!next_sibling)
     return 0;
@@ -144,7 +144,7 @@
      return 0;
 }
 
-_xmlNode* Node::create_new_child_node(const Glib::ustring& name, const Glib::ustring& ns_prefix)
+_xmlNode* Node::create_new_child_node(const xmlpp::string& name, const xmlpp::string& ns_prefix)
 {
    xmlNs* ns = 0;
 
@@ -213,12 +213,12 @@
   return static_cast<Node*>(imported_node->_private);
 }
 
-Glib::ustring Node::get_name() const
+xmlpp::string Node::get_name() const
 {
   return impl_->name ? (const char*)impl_->name : "";
 }
 
-void Node::set_name(const Glib::ustring& name)
+void Node::set_name(const xmlpp::string& name)
 {
   xmlNodeSetName( impl_, (const xmlChar *)name.c_str() );
 }
@@ -239,15 +239,15 @@
   return impl_;
 }
 
-Glib::ustring Node::get_path() const
+xmlpp::string Node::get_path() const
 {
   xmlChar* path = xmlGetNodePath(impl_);
-  Glib::ustring retn = path ? (char*)path : "";
+  xmlpp::string retn = path ? (char*)path : "";
   xmlFree(path);
   return retn;
 }
 
-static NodeSet find_impl(xmlXPathContext* ctxt, const Glib::ustring& xpath)
+static NodeSet find_impl(xmlXPathContext* ctxt, const xmlpp::string& xpath)
 {
   xmlXPathObject* result = xmlXPathEval((const xmlChar*)xpath.c_str(), ctxt);
 
@@ -308,7 +308,7 @@
   return nodes;
 }
 
-NodeSet Node::find(const Glib::ustring& xpath) const
+NodeSet Node::find(const xmlpp::string& xpath) const
 {
   xmlXPathContext* ctxt = xmlXPathNewContext(impl_->doc);
   ctxt->node = impl_;
@@ -316,7 +316,7 @@
   return find_impl(ctxt, xpath);
 }
 
-NodeSet Node::find(const Glib::ustring& xpath,
+NodeSet Node::find(const xmlpp::string& xpath,
 		   const PrefixNsMap& namespaces) const
 {
   xmlXPathContext* ctxt = xmlXPathNewContext(impl_->doc);
@@ -331,7 +331,7 @@
   return find_impl(ctxt, xpath);
 }
 
-Glib::ustring Node::get_namespace_prefix() const
+xmlpp::string Node::get_namespace_prefix() const
 {
   if(impl_->type == XML_DOCUMENT_NODE)
   {
@@ -341,16 +341,16 @@
     //This can be an issue when calling this method on a Node returned by Node::find().
     //See the TODO comment on Document, suggesting that Document should derived from Node.
 
-    return Glib::ustring();
+    return xmlpp::string();
   }
 
   if(impl_ && impl_->ns && impl_->ns->prefix)
     return (char*)impl_->ns->prefix;
   else
-    return Glib::ustring();
+    return xmlpp::string();
 }
 
-Glib::ustring Node::get_namespace_uri() const
+xmlpp::string Node::get_namespace_uri() const
 {
   if(impl_->type == XML_DOCUMENT_NODE)
   {
@@ -360,16 +360,16 @@
     //This can be an issue when calling this method on a Node returned by Node::find().
     //See the TODO comment on Document, suggesting that Document should derived from Node.
 
-    return Glib::ustring();
+    return xmlpp::string();
   }
 
   if(impl_ && impl_->ns && impl_->ns->href)
     return (char*)impl_->ns->href;
   else
-    return Glib::ustring();
+    return xmlpp::string();
 }
 
-void Node::set_namespace(const Glib::ustring& ns_prefix)
+void Node::set_namespace(const xmlpp::string& ns_prefix)
 {
   //Look for the existing namespace to use:
   xmlNs* ns = xmlSearchNs( cobj()->doc, cobj(), (xmlChar*)(ns_prefix.empty() ? 0 : ns_prefix.c_str()) );
diff -ruN a/libxml++/nodes/node.h b/libxml++/nodes/node.h
--- a/libxml++/nodes/node.h	2010-07-28 11:40:54.179008660 -0400
+++ b/libxml++/nodes/node.h	2010-07-28 14:19:04.910006282 -0400
@@ -9,7 +9,7 @@
 
 #include <libxml++/noncopyable.h>
 #include <libxml++/exceptions/exception.h>
-#include <glibmm/ustring.h>
+#include <libxml++/string.h>
 #include <list>
 #include <map>
 #include <vector>
@@ -44,21 +44,21 @@
   /** Get the name of this node.
    * @returns The node's name.
    */
-  Glib::ustring get_name() const;
+  xmlpp::string get_name() const;
 
   /** Set the name of this node.
    * @param name The new name for the node.
    */
-  void set_name(const Glib::ustring& name);
+  void set_name(const xmlpp::string& name);
 
   /** Set the namespace prefix used by the node.
    * If no such namespace prefix has been declared then this method will throw an exception.
    * @param ns_prefix The namespace prefix.
    */
-  void set_namespace(const Glib::ustring& ns_prefix);
+  void set_namespace(const xmlpp::string& ns_prefix);
 
-  Glib::ustring get_namespace_prefix() const;
-  Glib::ustring get_namespace_uri() const;
+  xmlpp::string get_namespace_prefix() const;
+  xmlpp::string get_namespace_uri() const;
 
   /** Discover at what line number this node occurs in the XML file.
    * @returns The line number.
@@ -99,21 +99,21 @@
    * @param name The names of the child nodes to get. If you do not specigy a name, then the list will contain all nodes, regardless of their names.
    * @returns The list of child nodes.
    */
-  NodeList get_children(const Glib::ustring& name = Glib::ustring());
+  NodeList get_children(const xmlpp::string& name = xmlpp::string());
 
   /** Obtain the list of child nodes. You may optionally obtain a list of only the child nodes which have a certain name.
    * @param name The names of the child nodes to get. If you do not specigy a name, then the list will contain all nodes, regardless of their names.
    * @returns The list of child nodes.
    */
-  const NodeList get_children(const Glib::ustring& name = Glib::ustring()) const;
+  const NodeList get_children(const xmlpp::string& name = xmlpp::string()) const;
 
   /** Add a child element to this node.
    * @param name The new node name
    * @param ns_prefix The namespace prefix. If the prefix has not been declared then this method will throw an exception.
    * @returns The newly-created element
    */
-  Element* add_child(const Glib::ustring& name,
-                     const Glib::ustring& ns_prefix = Glib::ustring());
+  Element* add_child(const xmlpp::string& name,
+                     const xmlpp::string& ns_prefix = xmlpp::string());
 
   /** Add a child element to this node after the specified existing child node.
    *
@@ -124,8 +124,8 @@
    * @param ns_prefix The namespace prefix. If the prefix has not been declared then this method will throw an exception.
    * @returns The newly-created element
    */
-  Element* add_child(xmlpp::Node* previous_sibling, const Glib::ustring& name,
-                     const Glib::ustring& ns_prefix = Glib::ustring());
+  Element* add_child(xmlpp::Node* previous_sibling, const xmlpp::string& name,
+                     const xmlpp::string& ns_prefix = xmlpp::string());
 
   /** Add a child element to this node before the specified existing child node.
    *
@@ -136,8 +136,8 @@
    * @param ns_prefix The namespace prefix. If the prefix has not been declared then this method will throw an exception.
    * @returns The newly-created element
    */
-  Element* add_child_before(xmlpp::Node* next_sibling, const Glib::ustring& name,
-                     const Glib::ustring& ns_prefix = Glib::ustring());
+  Element* add_child_before(xmlpp::Node* next_sibling, const xmlpp::string& name,
+                     const xmlpp::string& ns_prefix = xmlpp::string());
 
   /** Remove the child node.
    * @param node The child node to remove. This Node will be deleted and therefore unusable after calling this method.
@@ -155,22 +155,22 @@
   /** Return the XPath of this node.
    * @result The XPath of the node.
    */
-  Glib::ustring get_path() const;
+  xmlpp::string get_path() const;
 
   /** Find nodes from a XPath expression.
    * @param xpath The XPath of the nodes.
    */
-  NodeSet find(const Glib::ustring& xpath) const;
+  NodeSet find(const xmlpp::string& xpath) const;
 
   /** A map of namespace prefixes to namespace URIs.
    */
-  typedef std::map<Glib::ustring, Glib::ustring> PrefixNsMap;
+  typedef std::map<xmlpp::string, xmlpp::string> PrefixNsMap;
 
   /** Find nodes from a XPath expression.
    * @param xpath The XPath of the nodes.
    * @param namespaces A map of namespace prefixes to namespace URIs to be used while finding.
    */
-  NodeSet find(const Glib::ustring& xpath, const PrefixNsMap& namespaces) const;
+  NodeSet find(const xmlpp::string& xpath, const PrefixNsMap& namespaces) const;
 
 
   ///Access the underlying libxml implementation.
@@ -182,7 +182,7 @@
 protected:
 
   ///Create the C instance ready to be added to the parent node.
-  _xmlNode* create_new_child_node(const Glib::ustring& name, const Glib::ustring& ns_prefix);
+  _xmlNode* create_new_child_node(const xmlpp::string& name, const xmlpp::string& ns_prefix);
 
 private:
   _xmlNode* impl_;
diff -ruN a/libxml++/parsers/domparser.cc b/libxml++/parsers/domparser.cc
--- a/libxml++/parsers/domparser.cc	2010-07-28 11:40:54.217069740 -0400
+++ b/libxml++/parsers/domparser.cc	2010-07-28 14:19:04.911004167 -0400
@@ -26,7 +26,7 @@
   doc_ = new Document();
 }
 
-DomParser::DomParser(const Glib::ustring& filename, bool validate)
+DomParser::DomParser(const xmlpp::string& filename, bool validate)
 : doc_(0)
 {
   set_validate(validate);
@@ -38,7 +38,7 @@
   release_underlying();
 }
 
-void DomParser::parse_file(const Glib::ustring& filename)
+void DomParser::parse_file(const xmlpp::string& filename)
 {
   release_underlying(); //Free any existing document.
 
@@ -86,7 +86,7 @@
   parse_context();
 }
 
-void DomParser::parse_memory(const Glib::ustring& contents)
+void DomParser::parse_memory(const xmlpp::string& contents)
 {
   parse_memory_raw((const unsigned char*)contents.c_str(), contents.bytes());
 }
@@ -174,7 +174,7 @@
 
   initialize_context();
 
-  //TODO: Shouldn't we use a Glib::ustring here, and some alternative to std::getline()?
+  //TODO: Shouldn't we use a xmlpp::string here, and some alternative to std::getline()?
   std::string line;
   while(std::getline(in, line))
   {
@@ -182,7 +182,7 @@
     // about layout in certain cases.
     line += '\n';
 
-    xmlParseChunk(context_, line.c_str(), line.size() /* This is a std::string, not a ustring, so this is the number of bytes. */, 0);
+    xmlParseChunk(context_, line.c_str(), line.size() /* This is a std::string, not a xmlpp::string, so this is the number of bytes. */, 0);
   }
 
   xmlParseChunk(context_, 0, 0, 1);
diff -ruN a/libxml++/parsers/domparser.h b/libxml++/parsers/domparser.h
--- a/libxml++/parsers/domparser.h	2010-07-28 11:40:54.221072808 -0400
+++ b/libxml++/parsers/domparser.h	2010-07-28 14:19:04.911004167 -0400
@@ -26,20 +26,20 @@
    * @param filename The path to the file.
    * @param validate Whether the parser should validate the XML.             
    */
-  explicit DomParser(const Glib::ustring& filename, bool validate = false);
+  explicit DomParser(const xmlpp::string& filename, bool validate = false);
   virtual ~DomParser();
 
   /** Parse an XML document from a file.
    * @throw exception
    * @param filename The path to the file.
    */
-  virtual void parse_file(const Glib::ustring& filename);
+  virtual void parse_file(const xmlpp::string& filename);
 
   /** Parse an XML document from a string.
    * @throw exception  
    * @param contents The XML document as a string.
    */
-  virtual void parse_memory(const Glib::ustring& contents);
+  virtual void parse_memory(const xmlpp::string& contents);
   
   /** Parse an XML document from raw memory.
    * @throw exception
diff -ruN a/libxml++/parsers/parser.cc b/libxml++/parsers/parser.cc
--- a/libxml++/parsers/parser.cc	2010-07-28 11:40:54.217069740 -0400
+++ b/libxml++/parsers/parser.cc	2010-07-28 14:19:04.911004167 -0400
@@ -87,13 +87,13 @@
   }
 }
 
-void Parser::on_validity_error(const Glib::ustring& message)
+void Parser::on_validity_error(const xmlpp::string& message)
 {
   //Throw an exception later when the whole message has been received:
   validate_error_ += message;
 }
 
-void Parser::on_validity_warning(const Glib::ustring& message)
+void Parser::on_validity_warning(const xmlpp::string& message)
 {
   //Throw an exception later when the whole message has been received:
   validate_warning_ += message;
@@ -140,7 +140,7 @@
       try
       {
       #endif
-        parser->on_validity_error(Glib::ustring(buff));
+        parser->on_validity_error(xmlpp::string(buff));
       #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
       }
       catch(const exception& e)
@@ -175,7 +175,7 @@
       try
       {
       #endif
-        parser->on_validity_warning(Glib::ustring(buff));
+        parser->on_validity_warning(xmlpp::string(buff));
       #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
       }
       catch(const exception& e)
diff -ruN a/libxml++/parsers/parser.h b/libxml++/parsers/parser.h
--- a/libxml++/parsers/parser.h	2010-07-28 11:40:54.221072808 -0400
+++ b/libxml++/parsers/parser.h	2010-07-28 14:19:04.911004167 -0400
@@ -62,7 +62,7 @@
    * @throw exception
    * @param filename The path to the file.
    */
-  virtual void parse_file(const Glib::ustring& filename) = 0;
+  virtual void parse_file(const xmlpp::string& filename) = 0;
 
   //TODO: In a future ABI-break, add a virtual void parse_memory_raw(const unsigned char* contents, size_type bytes_count);
   
@@ -70,7 +70,7 @@
    * @throw exception
    * @param contents The XML document as a string.
    */
-  virtual void parse_memory(const Glib::ustring& contents) = 0;
+  virtual void parse_memory(const xmlpp::string& contents) = 0;
 
   /** Parse an XML document from a stream.
    * @throw exception
@@ -84,8 +84,8 @@
   virtual void initialize_context();
   virtual void release_underlying();
 
-  virtual void on_validity_error(const Glib::ustring& message);
-  virtual void on_validity_warning(const Glib::ustring& message);
+  virtual void on_validity_error(const xmlpp::string& message);
+  virtual void on_validity_warning(const xmlpp::string& message);
 
   virtual void handleException(const exception& e);
   virtual void check_for_exception();
@@ -96,8 +96,8 @@
   
   _xmlParserCtxt* context_;
   exception* exception_;
-  Glib::ustring validate_error_;
-  Glib::ustring validate_warning_; //Built gradually - used in an exception at the end of parsing.
+  xmlpp::string validate_error_;
+  xmlpp::string validate_warning_; //Built gradually - used in an exception at the end of parsing.
 
   bool validate_;
   bool substitute_entities_;
diff -ruN a/libxml++/parsers/saxparser.cc b/libxml++/parsers/saxparser.cc
--- a/libxml++/parsers/saxparser.cc	2010-07-28 11:40:54.217069740 -0400
+++ b/libxml++/parsers/saxparser.cc	2010-07-28 14:19:04.911004167 -0400
@@ -84,12 +84,12 @@
   release_underlying();
 }
 
-xmlEntityPtr SaxParser::on_get_entity(const Glib::ustring& name)
+xmlEntityPtr SaxParser::on_get_entity(const xmlpp::string& name)
 {
   return entity_resolver_doc_.get_entity(name);
 }
 
-void SaxParser::on_entity_declaration(const Glib::ustring& name, XmlEntityType type, const Glib::ustring& publicId, const Glib::ustring& systemId, const Glib::ustring& content)
+void SaxParser::on_entity_declaration(const xmlpp::string& name, XmlEntityType type, const xmlpp::string& publicId, const xmlpp::string& systemId, const xmlpp::string& content)
 {
   entity_resolver_doc_.set_entity_declaration(name, type, publicId, systemId, content);
 }  
@@ -102,50 +102,50 @@
 {
 }
 
-void SaxParser::on_start_element(const Glib::ustring& /* name */, const AttributeList& /* attributes */)
+void SaxParser::on_start_element(const xmlpp::string& /* name */, const AttributeList& /* attributes */)
 {
 }
 
-void SaxParser::on_end_element(const Glib::ustring& /* name */)
+void SaxParser::on_end_element(const xmlpp::string& /* name */)
 {
 }
 
-void SaxParser::on_characters(const Glib::ustring& /* text */)
+void SaxParser::on_characters(const xmlpp::string& /* text */)
 {
 }
 
-void SaxParser::on_comment(const Glib::ustring& /* text */)
+void SaxParser::on_comment(const xmlpp::string& /* text */)
 {
 }
 
-void SaxParser::on_warning(const Glib::ustring& /* text */)
+void SaxParser::on_warning(const xmlpp::string& /* text */)
 {
 }
 
-void SaxParser::on_error(const Glib::ustring& /* text */)
+void SaxParser::on_error(const xmlpp::string& /* text */)
 {
 }
 
 
 #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
-void SaxParser::on_fatal_error(const Glib::ustring& text)
+void SaxParser::on_fatal_error(const xmlpp::string& text)
 {
   throw parse_error("Fatal error: " + text);
 }
 #else
-void SaxParser::on_fatal_error(const Glib::ustring&)
+void SaxParser::on_fatal_error(const xmlpp::string&)
 {
   //throw parse_error("Fatal error: " + text);
 }
 #endif //LIBXMLCPP_EXCEPTIONS_ENABLED
 
-void SaxParser::on_cdata_block(const Glib::ustring& /* text */)
+void SaxParser::on_cdata_block(const xmlpp::string& /* text */)
 {
 }
 
-void SaxParser::on_internal_subset(const Glib::ustring& name,
-                         const Glib::ustring& publicId,
-                         const Glib::ustring& systemId)
+void SaxParser::on_internal_subset(const xmlpp::string& name,
+                         const xmlpp::string& publicId,
+                         const xmlpp::string& systemId)
 {
   entity_resolver_doc_.set_internal_subset(name, publicId, systemId);
 }
@@ -181,7 +181,7 @@
   check_for_exception();
 }
 
-void SaxParser::parse_file(const Glib::ustring& filename)
+void SaxParser::parse_file(const xmlpp::string& filename)
 {
   if(context_) {
     #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
@@ -213,7 +213,7 @@
   parse();
 }
   
-void SaxParser::parse_memory(const Glib::ustring& contents)
+void SaxParser::parse_memory(const xmlpp::string& contents)
 {
   parse_memory_raw((const unsigned char*)contents.c_str(), contents.bytes());
 }
@@ -239,7 +239,7 @@
 
   initialize_context();
 
-  //TODO: Shouldn't we use a Glib::ustring here, and some alternative to std::getline()?
+  //TODO: Shouldn't we use a xmlpp::string here, and some alternative to std::getline()?
   std::string line;
   while( ( ! exception_ )
       && std::getline(in, line))
@@ -248,7 +248,7 @@
     // about layout in certain cases.
     line += '\n';
 
-    xmlParseChunk(context_, line.c_str(), line.size() /* This is a std::string, not a ustring, so this is the number of bytes. */, 0 /* don't terminate */);
+    xmlParseChunk(context_, line.c_str(), line.size() /* This is a std::string, not a xmlpp::string, so this is the number of bytes. */, 0 /* don't terminate */);
   }
 
   if( ! exception_ )
@@ -259,7 +259,7 @@
   check_for_exception();
 }
 
-void SaxParser::parse_chunk(const Glib::ustring& chunk)
+void SaxParser::parse_chunk(const xmlpp::string& chunk)
 {
   parse_chunk_raw((const unsigned char*)chunk.c_str(), chunk.bytes());
 }
@@ -344,11 +344,11 @@
   {
   #endif //LIBXMLCPP_EXCEPTIONS_ENABLED
     parser->on_entity_declaration(
-      ( name ? Glib::ustring((const char*)name) : ""),
+      ( name ? xmlpp::string((const char*)name) : ""),
       static_cast<XmlEntityType>(type),
-      ( publicId ? Glib::ustring((const char*)publicId) : ""),
-      ( systemId ? Glib::ustring((const char*)systemId) : ""),
-      ( content ? Glib::ustring((const char*)content) : "") );
+      ( publicId ? xmlpp::string((const char*)publicId) : ""),
+      ( systemId ? xmlpp::string((const char*)systemId) : ""),
+      ( content ? xmlpp::string((const char*)content) : "") );
   #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
   }
   catch(const exception& e)
@@ -417,7 +417,7 @@
   try
   {
   #endif //LIBXMLCPP_EXCEPTIONS_ENABLED
-    parser->on_start_element(Glib::ustring((const char*) name), attributes);
+    parser->on_start_element(xmlpp::string((const char*) name), attributes);
   #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
   }
   catch(const exception& e)
@@ -436,7 +436,7 @@
   try
   {
   #endif //LIBXMLCPP_EXCEPTIONS_ENABLED
-    parser->on_end_element(Glib::ustring((const char*) name));
+    parser->on_end_element(xmlpp::string((const char*) name));
   #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
   }
   catch(const exception& e)
@@ -455,11 +455,11 @@
   try
   {
   #endif //LIBXMLCPP_EXCEPTIONS_ENABLED
-    // Here we force the use of Glib::ustring::ustring( InputIterator begin, InputIterator end )
-    // instead of Glib::ustring::ustring( const char*, size_type ) because it
+    // Here we force the use of xmlpp::string::string( InputIterator begin, InputIterator end )
+    // instead of xmlpp::string::string( const char*, size_type ) because it
     // expects the length of the string in characters, not in bytes.
     parser->on_characters(
-        Glib::ustring(
+        xmlpp::string(
           reinterpret_cast<const char *>(ch),
           reinterpret_cast<const char *>(ch + len) ) );
   #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
@@ -480,7 +480,7 @@
   try
   {
   #endif //LIBXMLCPP_EXCEPTIONS_ENABLED
-    parser->on_comment(Glib::ustring((const char*) value));
+    parser->on_comment(xmlpp::string((const char*) value));
   #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
   }
   catch(const exception& e)
@@ -506,7 +506,7 @@
   try
   {
   #endif //LIBXMLCPP_EXCEPTIONS_ENABLED
-    parser->on_warning(Glib::ustring(buff));
+    parser->on_warning(xmlpp::string(buff));
   #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
   }
   catch(const exception& e)
@@ -535,7 +535,7 @@
   try
   {
   #endif //LIBXMLCPP_EXCEPTIONS_ENABLED
-    parser->on_error(Glib::ustring(buff));
+    parser->on_error(xmlpp::string(buff));
   #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
   }
   catch(const exception& e)
@@ -561,7 +561,7 @@
   try
   {
   #endif //LIBXMLCPP_EXCEPTIONS_ENABLED
-    parser->on_fatal_error(Glib::ustring(buff));
+    parser->on_fatal_error(xmlpp::string(buff));
   #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
   }
   catch(const exception& e)
@@ -580,10 +580,10 @@
   try
   {
   #endif //LIBXMLCPP_EXCEPTIONS_ENABLED
-    // Here we force the use of Glib::ustring::ustring( InputIterator begin, InputIterator end )
+    // Here we force the use of xmlpp::string::string( InputIterator begin, InputIterator end )
     // see comments in SaxParserCallback::characters
     parser->on_cdata_block(
-        Glib::ustring(
+        xmlpp::string(
           reinterpret_cast<const char *>(value),
           reinterpret_cast<const char *>(value + len) ) );
   #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
@@ -605,10 +605,10 @@
   try
   {
   #endif //LIBXMLCPP_EXCEPTIONS_ENABLED
-    const Glib::ustring pid = publicId ? Glib::ustring((const char*) publicId) : "";
-    const Glib::ustring sid = systemId ? Glib::ustring((const char*) systemId) : "";
+    const xmlpp::string pid = publicId ? xmlpp::string((const char*) publicId) : "";
+    const xmlpp::string sid = systemId ? xmlpp::string((const char*) systemId) : "";
 
-    parser->on_internal_subset( Glib::ustring((const char*) name), pid, sid);
+    parser->on_internal_subset( xmlpp::string((const char*) name), pid, sid);
   #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
   }
   catch(const exception& e)
diff -ruN a/libxml++/parsers/saxparser.h b/libxml++/parsers/saxparser.h
--- a/libxml++/parsers/saxparser.h	2010-07-28 11:40:54.225072022 -0400
+++ b/libxml++/parsers/saxparser.h	2010-07-28 14:19:04.912007853 -0400
@@ -35,10 +35,10 @@
    */
   struct Attribute
   {
-    Glib::ustring name;
-    Glib::ustring value;
+    xmlpp::string name;
+    xmlpp::string value;
 
-    Attribute(Glib::ustring const & n, Glib::ustring const & v)
+    Attribute(xmlpp::string const & n, xmlpp::string const & v)
       : name(n), value(v)
       {
       }
@@ -51,15 +51,15 @@
    * 
    * Example:@n
    * <code>
-   *   Glib::ustring name = "foo";@n
+   *   xmlpp::string name = "foo";@n
    *   AttributeList::const_iterator attribute = std::find_if(attributes.begin(), attributes.end(), AttributeHasName(name));
    * </code>
    */
   struct AttributeHasName
   {
-    Glib::ustring const & name;
+    xmlpp::string const & name;
 
-    AttributeHasName(Glib::ustring const & n)
+    AttributeHasName(xmlpp::string const & n)
       : name(n)
       {
       }
@@ -84,13 +84,13 @@
    * @throw exception
    * @param filename The path to the file.
    */
-  virtual void parse_file(const Glib::ustring& filename);
+  virtual void parse_file(const xmlpp::string& filename);
 
   /** Parse an XML document from a string.
    * @throw exception
    * @param contents The XML document as a string.
    */
-  virtual void parse_memory(const Glib::ustring& contents);
+  virtual void parse_memory(const xmlpp::string& contents);
 
   /** Parse an XML document from raw memory.
    * @throw exception
@@ -117,7 +117,7 @@
    * @throw exception
    * @param chunk The next piece of the XML document.
    */
-  virtual void parse_chunk(const Glib::ustring& chunk);
+  virtual void parse_chunk(const xmlpp::string& chunk);
 
   /** Parse a chunk of data.
    *
@@ -147,18 +147,18 @@
         
   virtual void on_start_document();
   virtual void on_end_document();
-  virtual void on_start_element(const Glib::ustring& name, const AttributeList& attributes);
-  virtual void on_end_element(const Glib::ustring& name);
-  virtual void on_characters(const Glib::ustring& characters);
-  virtual void on_comment(const Glib::ustring& text);
-  virtual void on_warning(const Glib::ustring& text);
-  virtual void on_error(const Glib::ustring& text);
-  virtual void on_fatal_error(const Glib::ustring& text);
-  virtual void on_cdata_block(const Glib::ustring& text);
+  virtual void on_start_element(const xmlpp::string& name, const AttributeList& attributes);
+  virtual void on_end_element(const xmlpp::string& name);
+  virtual void on_characters(const xmlpp::string& characters);
+  virtual void on_comment(const xmlpp::string& text);
+  virtual void on_warning(const xmlpp::string& text);
+  virtual void on_error(const xmlpp::string& text);
+  virtual void on_fatal_error(const xmlpp::string& text);
+  virtual void on_cdata_block(const xmlpp::string& text);
 
   /** Override this to receive information about the document's DTD and any entity declarations.
    */
-  virtual void on_internal_subset(const Glib::ustring& name, const Glib::ustring& publicId, const Glib::ustring& systemId);
+  virtual void on_internal_subset(const xmlpp::string& name, const xmlpp::string& publicId, const xmlpp::string& systemId);
 
   /** Override this method to resolve entities references in your derived parser, instead of using the default entity resolution,
    * or to be informed when entity references are encountered.
@@ -179,14 +179,14 @@
    * @returns The resolved xmlEntity for the entity reference. You must include libxml/parser.h in order to use this C struct.
    * This instance will not be freed by the caller.
    */
-  virtual _xmlEntity* on_get_entity(const Glib::ustring& name);
+  virtual _xmlEntity* on_get_entity(const xmlpp::string& name);
 
   /** Override this to receive information about every entity declaration.
    * If you override this function, and you want normal entity substitution to work, then you must call the base class in your override.
    *
    * This would be useful when overriding on_get_entity().
    */
-  virtual void on_entity_declaration(const Glib::ustring& name, XmlEntityType type, const Glib::ustring& publicId, const Glib::ustring& systemId, const Glib::ustring& content);
+  virtual void on_entity_declaration(const xmlpp::string& name, XmlEntityType type, const xmlpp::string& publicId, const xmlpp::string& systemId, const xmlpp::string& content);
 
   virtual void release_underlying();
   
diff -ruN a/libxml++/parsers/textreader.cc b/libxml++/parsers/textreader.cc
--- a/libxml++/parsers/textreader.cc	2010-07-28 11:40:54.225072022 -0400
+++ b/libxml++/parsers/textreader.cc	2010-07-28 14:19:04.911004167 -0400
@@ -18,8 +18,8 @@
   int Int(int value);
   bool Bool(int value);
   char Char(int value);
-  Glib::ustring String(xmlChar* value, bool free = false);
-  Glib::ustring String(xmlChar const* value);
+  xmlpp::string String(xmlChar* value, bool free = false);
+  xmlpp::string String(xmlChar const* value);
 
   TextReader & owner_;
 };
@@ -35,7 +35,7 @@
 TextReader::TextReader(
 	const unsigned char* data, 
 	size_type size,
-	const Glib::ustring& uri)
+	const xmlpp::string& uri)
 	: propertyreader(new PropertyReader(*this)), 
 	  impl_( xmlReaderForMemory ((const char*)data, size, uri.c_str(), 0, 0) ),
     severity_( 0 )
@@ -51,7 +51,7 @@
 }
 
 TextReader::TextReader(
-    const Glib::ustring& URI)
+    const xmlpp::string& URI)
   : propertyreader(new PropertyReader(*this)), impl_( xmlNewTextReaderFilename(URI.c_str()) ),
     severity_( 0 )
 {
@@ -76,19 +76,19 @@
       xmlTextReaderRead(impl_));
 }
 
-Glib::ustring TextReader::read_inner_xml()
+xmlpp::string TextReader::read_inner_xml()
 {
   return propertyreader->String(
       xmlTextReaderReadInnerXml(impl_), true);
 }
 
-Glib::ustring TextReader::read_outer_xml()
+xmlpp::string TextReader::read_outer_xml()
 {
   return propertyreader->String(
       xmlTextReaderReadOuterXml(impl_), true);
 }
 
-Glib::ustring TextReader::read_string()
+xmlpp::string TextReader::read_string()
 {
   return propertyreader->String(
       xmlTextReaderReadString(impl_), true);
@@ -106,7 +106,7 @@
       xmlTextReaderAttributeCount(impl_));
 }
 
-Glib::ustring TextReader::get_base_uri() const
+xmlpp::string TextReader::get_base_uri() const
 {
   return propertyreader->String(
       xmlTextReaderBaseUri(impl_));
@@ -142,19 +142,19 @@
       xmlTextReaderIsEmptyElement(impl_));
 }
 
-Glib::ustring TextReader::get_local_name() const
+xmlpp::string TextReader::get_local_name() const
 {
   return propertyreader->String(
       xmlTextReaderLocalName(impl_), true);
 }
 
-Glib::ustring TextReader::get_name() const
+xmlpp::string TextReader::get_name() const
 {
   return propertyreader->String(
       xmlTextReaderName(impl_), true);
 }
 
-Glib::ustring TextReader::get_namespace_uri() const
+xmlpp::string TextReader::get_namespace_uri() const
 {
   return propertyreader->String(
       xmlTextReaderNamespaceUri(impl_), true);
@@ -168,7 +168,7 @@
   return (xmlNodeType)result;
 }
 
-Glib::ustring TextReader::get_prefix() const
+xmlpp::string TextReader::get_prefix() const
 {
   return propertyreader->String(
       xmlTextReaderPrefix(impl_), true);
@@ -180,13 +180,13 @@
       xmlTextReaderQuoteChar(impl_));
 }
 
-Glib::ustring TextReader::get_value() const
+xmlpp::string TextReader::get_value() const
 {
   return propertyreader->String(
       xmlTextReaderValue(impl_), true);
 }
 
-Glib::ustring TextReader::get_xml_lang() const
+xmlpp::string TextReader::get_xml_lang() const
 {
   return propertyreader->String(
       xmlTextReaderXmlLang(impl_));
@@ -206,29 +206,29 @@
     check_for_exceptions();
 }
 
-Glib::ustring TextReader::get_attribute(int number) const
+xmlpp::string TextReader::get_attribute(int number) const
 {
   return propertyreader->String(
       xmlTextReaderGetAttributeNo(impl_, number), true);
 }
 
-Glib::ustring TextReader::get_attribute(
-    const Glib::ustring& name) const
+xmlpp::string TextReader::get_attribute(
+    const xmlpp::string& name) const
 {
   return propertyreader->String(
       xmlTextReaderGetAttribute(impl_, (const xmlChar *)name.c_str()), true);
 }
 
-Glib::ustring TextReader::get_attribute(
-    const Glib::ustring& localName,
-    const Glib::ustring& namespaceURI) const
+xmlpp::string TextReader::get_attribute(
+    const xmlpp::string& localName,
+    const xmlpp::string& namespaceURI) const
 {
   return propertyreader->String(
       xmlTextReaderGetAttributeNs(impl_, (const xmlChar *)localName.c_str(), (const xmlChar *)namespaceURI.c_str()), true);
 }
 
-Glib::ustring TextReader::lookup_namespace(
-    const Glib::ustring& prefix) const
+xmlpp::string TextReader::lookup_namespace(
+    const xmlpp::string& prefix) const
 {
   return propertyreader->String(
       xmlTextReaderLookupNamespace(impl_, (const xmlChar *)prefix.c_str()), true);
@@ -241,15 +241,15 @@
 }
 
 bool TextReader::move_to_attribute(
-    const Glib::ustring& name)
+    const xmlpp::string& name)
 {
   return propertyreader->Bool(
       xmlTextReaderMoveToAttribute(impl_, (const xmlChar *)name.c_str()));
 }
 
 bool TextReader::move_to_attribute(
-    const Glib::ustring& localName,
-    const Glib::ustring& namespaceURI)
+    const xmlpp::string& localName,
+    const xmlpp::string& namespaceURI)
 {
   return propertyreader->Bool(
       xmlTextReaderMoveToAttributeNs(impl_, (const xmlChar *)localName.c_str(), (const xmlChar *)namespaceURI.c_str()));
@@ -408,14 +408,14 @@
   return value;
 }
 
-Glib::ustring TextReader::PropertyReader::String(xmlChar* value, bool free)
+xmlpp::string TextReader::PropertyReader::String(xmlChar* value, bool free)
 {
   owner_.check_for_exceptions();
   
   if(value == (xmlChar *)0)
-    return Glib::ustring();
+    return xmlpp::string();
     
-  const Glib::ustring result = (char *)value;
+  const xmlpp::string result = (char *)value;
 
   if(free)
     xmlFree(value);
@@ -423,12 +423,12 @@
   return result;
 }
 
-Glib::ustring TextReader::PropertyReader::String(xmlChar const* value)
+xmlpp::string TextReader::PropertyReader::String(xmlChar const* value)
 {
   owner_.check_for_exceptions();
 
   if(value == (xmlChar *)0)
-    return Glib::ustring();
+    return xmlpp::string();
 
   return (const char*)value;
 }
diff -ruN a/libxml++/parsers/textreader.h b/libxml++/parsers/textreader.h
--- a/libxml++/parsers/textreader.h	2010-07-28 11:40:54.225072022 -0400
+++ b/libxml++/parsers/textreader.h	2010-07-28 14:19:04.912007853 -0400
@@ -10,8 +10,6 @@
 #include <libxml++/noncopyable.h>
 #include <libxml++/nodes/node.h>
 
-#include <glibmm/ustring.h>
-
 #include <memory>
 
 extern "C"
@@ -82,7 +80,7 @@
      * Creates a new TextReader object to parse a file or URI.
      * @param URI The URI to read.
      */
-    TextReader(const Glib::ustring& URI);
+    TextReader(const xmlpp::string& URI);
 
     /**
      * Creates a new TextReader object which parses in memory data.
@@ -90,7 +88,7 @@
      * @param size The number of bytes in data.
      * @param uri The base URI of the file.
      */
-    TextReader(const unsigned char* data, size_type size, const Glib::ustring& uri = Glib::ustring());
+    TextReader(const unsigned char* data, size_type size, const xmlpp::string& uri = xmlpp::string());
 
     ~TextReader();
 
@@ -100,19 +98,19 @@
     bool read();
 
     /** Reads the contents of the current node, including child nodes and markup.
-     * @return A Glib::ustring containing the XML content, or and empty Glib::ustring if the current node is neither an element nor attribute, or has no child nodes.
+     * @return A xmlpp::string containing the XML content, or and empty xmlpp::string if the current node is neither an element nor attribute, or has no child nodes.
      */
-    Glib::ustring read_inner_xml();
+    xmlpp::string read_inner_xml();
 
     /** Reads the current node and its contents, including child nodes and markup.
-     * @return A Glib::ustring containing the XML content, or an empty Glib::ustring if the current node is neither an element nor attribute.
+     * @return A xmlpp::string containing the XML content, or an empty xmlpp::string if the current node is neither an element nor attribute.
      */
-    Glib::ustring read_outer_xml();
+    xmlpp::string read_outer_xml();
 
     /** Reads the contents of an element or a text node as a string.
-     * @return A Glib::ustring containing the contents of the Element or Text node, or an empty Glib::ustring if the reader is positioned on any other type of node.
+     * @return A xmlpp::string containing the contents of the Element or Text node, or an empty xmlpp::string if the reader is positioned on any other type of node.
      */
-    Glib::ustring read_string();
+    xmlpp::string read_string();
 
     /** Parses an attribute value into one or more Text and EntityReference nodes.
      * @return A bool where true indicates the attribute value was parsed, and false indicates the reader was not positioned on an attribute node or all the attribute values have been read.
@@ -125,9 +123,9 @@
     int get_attribute_count() const;
 
     /** Gets the base Uniform Resource Identifier (URI) of the current node.
-     * @return The base URI of the current node or an empty Glib::ustring if not available.
+     * @return The base URI of the current node or an empty xmlpp::string if not available.
      */
-    Glib::ustring get_base_uri() const;
+    xmlpp::string get_base_uri() const;
 
     /** Gets the depth of the current node in the XML document.
      * @return The depth of the current node in the XML document.
@@ -154,33 +152,33 @@
      */
     bool is_empty_element() const;
 
-    Glib::ustring get_local_name() const;
-    Glib::ustring get_name() const;
-    Glib::ustring get_namespace_uri() const;
+    xmlpp::string get_local_name() const;
+    xmlpp::string get_name() const;
+    xmlpp::string get_namespace_uri() const;
 
     xmlNodeType get_node_type() const;
 
-    Glib::ustring get_prefix() const;
+    xmlpp::string get_prefix() const;
     char get_quote_char() const;
 
-    Glib::ustring get_value() const;
-    Glib::ustring get_xml_lang() const;
+    xmlpp::string get_value() const;
+    xmlpp::string get_xml_lang() const;
 
     xmlReadState get_read_state() const;
 
     void close();
 
-    Glib::ustring get_attribute(int number) const;
-    Glib::ustring get_attribute(const Glib::ustring& name) const;
-    Glib::ustring get_attribute(const Glib::ustring& local_name, const Glib::ustring& ns_uri) const;
+    xmlpp::string get_attribute(int number) const;
+    xmlpp::string get_attribute(const xmlpp::string& name) const;
+    xmlpp::string get_attribute(const xmlpp::string& local_name, const xmlpp::string& ns_uri) const;
 
     // TODO InputBuffer GetRemainder;
 
-    Glib::ustring lookup_namespace(const Glib::ustring& prefix) const;
+    xmlpp::string lookup_namespace(const xmlpp::string& prefix) const;
 
     bool move_to_attribute(int number);
-    bool move_to_attribute(const Glib::ustring& name);
-    bool move_to_attribute(const Glib::ustring& local_name, const Glib::ustring& ns_uri);
+    bool move_to_attribute(const xmlpp::string& name);
+    bool move_to_attribute(const xmlpp::string& local_name, const xmlpp::string& ns_uri);
     bool move_to_first_attribute();
     bool move_to_next_attribute();
     bool move_to_element();
@@ -211,7 +209,7 @@
     std::auto_ptr<PropertyReader> propertyreader;
     _xmlTextReader* impl_;
     int severity_;
-    Glib::ustring error_;
+    xmlpp::string error_;
 };
 
 }
diff -ruN a/libxml++/schema.cc b/libxml++/schema.cc
--- a/libxml++/schema.cc	2010-07-28 11:40:54.230051642 -0400
+++ b/libxml++/schema.cc	2010-07-28 14:19:04.912007853 -0400
@@ -47,17 +47,17 @@
   xmlSchemaFreeParserCtxt( context );
 }
 
-Glib::ustring Schema::get_name() const
+xmlpp::string Schema::get_name() const
 {
   return (char*)impl_->name;
 }
 
-Glib::ustring Schema::get_target_namespace() const
+xmlpp::string Schema::get_target_namespace() const
 {
   return (char*)impl_->targetNamespace;
 }
 
-Glib::ustring Schema::get_version() const
+xmlpp::string Schema::get_version() const
 {
   return (char*)impl_->version;
 }
diff -ruN a/libxml++/schema.h b/libxml++/schema.h
--- a/libxml++/schema.h	2010-07-28 11:40:54.231037607 -0400
+++ b/libxml++/schema.h	2010-07-28 14:19:04.912007853 -0400
@@ -46,9 +46,9 @@
    */
   virtual void set_document(Document* document = 0, bool embed = false);
 
-  Glib::ustring get_name() const;
-  Glib::ustring get_target_namespace() const;
-  Glib::ustring get_version() const;
+  xmlpp::string get_name() const;
+  xmlpp::string get_target_namespace() const;
+  xmlpp::string get_version() const;
 
   Document* get_document();
   const Document* get_document()const;
diff -ruN a/libxml++/string.h b/libxml++/string.h
--- a/libxml++/string.h	1969-12-31 19:00:00.000000000 -0500
+++ b/libxml++/string.h	2010-07-28 14:31:04.192018276 -0400
@@ -0,0 +1,18 @@
+/* string.h
+ * libxml++ and this file are copyright (C) 2000 by Ari Johnson, and
+ * are covered by the GNU Lesser General Public License, which should be
+ * included with libxml++ as the file COPYING.
+ */
+
+#ifndef __LIBXMLPP_STRING_H
+#define __LIBXMLPP_STRING_H
+
+#include <glibmm/ustring.h>
+
+namespace xmlpp
+{
+  typedef Glib::ustring string;
+} // namespace xmlpp
+
+#endif //__LIBXMLPP_STRING_H
+
diff -ruN a/libxml++/validators/dtdvalidator.cc b/libxml++/validators/dtdvalidator.cc
--- a/libxml++/validators/dtdvalidator.cc	2010-07-28 11:40:54.193072633 -0400
+++ b/libxml++/validators/dtdvalidator.cc	2010-07-28 14:19:04.911004167 -0400
@@ -27,13 +27,13 @@
 {
 }
 
-DtdValidator::DtdValidator(const Glib::ustring& file)
+DtdValidator::DtdValidator(const xmlpp::string& file)
 : dtd_(0)
 {
   parse_subset("",file);
 }
 
-DtdValidator::DtdValidator(const Glib::ustring& external,const Glib::ustring& system)
+DtdValidator::DtdValidator(const xmlpp::string& external,const xmlpp::string& system)
 : dtd_(0)
 {
   parse_subset(external,system);
@@ -45,12 +45,12 @@
   Validator::release_underlying();
 }
 
-void DtdValidator::parse_file(const Glib::ustring& filename)
+void DtdValidator::parse_file(const xmlpp::string& filename)
 {
   parse_subset("",filename);
 }
 
-void DtdValidator::parse_subset(const Glib::ustring& external,const Glib::ustring& system)
+void DtdValidator::parse_subset(const xmlpp::string& external,const xmlpp::string& system)
 {
   release_underlying(); // Free any existing dtd.
 
@@ -70,7 +70,7 @@
   dtd_ = static_cast<Dtd*>(dtd->_private);
 }
 
-void DtdValidator::parse_memory(const Glib::ustring& contents)
+void DtdValidator::parse_memory(const xmlpp::string& contents)
 {
   // Prepare an istream with buffer
   std::istringstream is( contents );
diff -ruN a/libxml++/validators/dtdvalidator.h b/libxml++/validators/dtdvalidator.h
--- a/libxml++/validators/dtdvalidator.h	2010-07-28 11:40:54.197071694 -0400
+++ b/libxml++/validators/dtdvalidator.h	2010-07-28 14:19:04.911004167 -0400
@@ -21,13 +21,13 @@
 {
 public:
   DtdValidator();
-  explicit DtdValidator(const Glib::ustring& file);
-  explicit DtdValidator(const Glib::ustring& external,const Glib::ustring& system);
+  explicit DtdValidator(const xmlpp::string& file);
+  explicit DtdValidator(const xmlpp::string& external,const xmlpp::string& system);
   virtual ~DtdValidator();
 
-  virtual void parse_subset(const Glib::ustring& external,const Glib::ustring& system);
-  virtual void parse_file(const Glib::ustring& filename);
-  virtual void parse_memory(const Glib::ustring& contents);
+  virtual void parse_subset(const xmlpp::string& external,const xmlpp::string& system);
+  virtual void parse_file(const xmlpp::string& filename);
+  virtual void parse_memory(const xmlpp::string& contents);
   virtual void parse_stream(std::istream& in);
 
   /** Test whether a document has been parsed.
diff -ruN a/libxml++/validators/schemavalidator.cc b/libxml++/validators/schemavalidator.cc
--- a/libxml++/validators/schemavalidator.cc	2010-07-28 11:40:54.198065715 -0400
+++ b/libxml++/validators/schemavalidator.cc	2010-07-28 14:19:04.911004167 -0400
@@ -40,7 +40,7 @@
 {
 }
 
-SchemaValidator::SchemaValidator(const Glib::ustring& file)
+SchemaValidator::SchemaValidator(const xmlpp::string& file)
 : schema_(0)
 , embbeded_shema_(false)
 , ctxt_(0)
@@ -85,14 +85,14 @@
   embbeded_shema_ = true;
 }
 
-void SchemaValidator::parse_file(const Glib::ustring& filename)
+void SchemaValidator::parse_file(const xmlpp::string& filename)
 {
   xmlSchemaParserCtxtPtr ctx = xmlSchemaNewParserCtxt( filename.c_str() );
   XmlSchemaParserContextHolder holder(ctx);
   parse_context( ctx );
 }
 
-void SchemaValidator::parse_memory(const Glib::ustring& contents)
+void SchemaValidator::parse_memory(const xmlpp::string& contents)
 {
   xmlSchemaParserCtxtPtr ctx = xmlSchemaNewMemParserCtxt( contents.c_str(), contents.bytes() );
   XmlSchemaParserContextHolder holder(ctx);
@@ -191,7 +191,7 @@
   return res;
 }
 
-bool SchemaValidator::validate(const Glib::ustring& file)
+bool SchemaValidator::validate(const xmlpp::string& file)
 {
 #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
   if (file.empty())
diff -ruN a/libxml++/validators/schemavalidator.h b/libxml++/validators/schemavalidator.h
--- a/libxml++/validators/schemavalidator.h	2010-07-28 11:40:54.198065715 -0400
+++ b/libxml++/validators/schemavalidator.h	2010-07-28 14:19:04.911004167 -0400
@@ -29,13 +29,13 @@
 {
 public:
   SchemaValidator();
-  explicit SchemaValidator(const Glib::ustring& file);
+  explicit SchemaValidator(const xmlpp::string& file);
   explicit SchemaValidator(Document& document);
   explicit SchemaValidator(Schema* schema);
   virtual ~SchemaValidator();
 
-  virtual void parse_file(const Glib::ustring& filename);
-  virtual void parse_memory(const Glib::ustring& contents);
+  virtual void parse_file(const xmlpp::string& filename);
+  virtual void parse_memory(const xmlpp::string& contents);
   virtual void parse_document(Document& document);
   virtual void set_schema(Schema* schema);
 
@@ -46,7 +46,7 @@
   const Schema* get_schema() const;
 
   bool validate(const Document* doc);
-  bool validate(const Glib::ustring& file);
+  bool validate(const xmlpp::string& file);
 
 protected:
   virtual void initialize_valid();
diff -ruN a/libxml++/validators/validator.cc b/libxml++/validators/validator.cc
--- a/libxml++/validators/validator.cc	2010-07-28 11:40:54.197071694 -0400
+++ b/libxml++/validators/validator.cc	2010-07-28 14:19:04.911004167 -0400
@@ -50,13 +50,13 @@
   }
 }
 
-void Validator::on_validity_error(const Glib::ustring& message)
+void Validator::on_validity_error(const xmlpp::string& message)
 {
   //Throw an exception later when the whole message has been received:
   validate_error_ += message;
 }
 
-void Validator::on_validity_warning(const Glib::ustring& message)
+void Validator::on_validity_warning(const xmlpp::string& message)
 {
   //Throw an exception later when the whole message has been received:
   validate_warning_ += message;
@@ -99,7 +99,7 @@
     try
     {
     #endif //LIBXMLCPP_EXCEPTIONS_ENABLED
-      validator->on_validity_error(Glib::ustring(buff));
+      validator->on_validity_error(xmlpp::string(buff));
     #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
     }
     catch(const exception& e)
@@ -128,7 +128,7 @@
     try
     {
     #endif //LIBXMLCPP_EXCEPTIONS_ENABLED
-      validator->on_validity_warning(Glib::ustring(buff));
+      validator->on_validity_warning(xmlpp::string(buff));
     #ifdef LIBXMLCPP_EXCEPTIONS_ENABLED
     }
     catch(const exception& e)
diff -ruN a/libxml++/validators/validator.h b/libxml++/validators/validator.h
--- a/libxml++/validators/validator.h	2010-07-28 11:40:54.198065715 -0400
+++ b/libxml++/validators/validator.h	2010-07-28 14:19:04.911004167 -0400
@@ -35,8 +35,8 @@
   virtual void initialize_valid();
   virtual void release_underlying();
 
-  virtual void on_validity_error(const Glib::ustring& message);
-  virtual void on_validity_warning(const Glib::ustring& message);
+  virtual void on_validity_error(const xmlpp::string& message);
+  virtual void on_validity_warning(const xmlpp::string& message);
 
   virtual void handleException(const exception& e);
   virtual void check_for_exception();
@@ -47,8 +47,8 @@
 
   _xmlValidCtxt* valid_;
   exception* exception_;
-  Glib::ustring validate_error_;
-  Glib::ustring validate_warning_; //Built gradually - used in an exception at the end of parsing.
+  xmlpp::string validate_error_;
+  xmlpp::string validate_warning_; //Built gradually - used in an exception at the end of parsing.
 };
 
 } // namespace xmlpp
