applied patch from Rob Richards to fix xmlTextReaderGetAttribute behaviour

* xmlreader.c: applied patch from Rob Richards to fix
  xmlTextReaderGetAttribute behaviour with namespace declarations
Daniel
diff --git a/xmlreader.c b/xmlreader.c
index e0138a7..b1bac08 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -2309,12 +2309,40 @@
 	return(NULL);
 
     localname = xmlSplitQName2(name, &prefix);
-    if (localname == NULL)
-	return(xmlGetNoNsProp(reader->node, name));
-    
-    ns = xmlSearchNs(reader->node->doc, reader->node, prefix);
-    if (ns != NULL)
-        ret = xmlGetNsProp(reader->node, localname, ns->href);
+    if (localname == NULL) {
+		/*
+		 * Namespace default decl
+		 */
+		if (xmlStrEqual(name, BAD_CAST "xmlns")) {
+			ns = reader->node->nsDef;
+			while (ns != NULL) {
+				if (ns->prefix == NULL) {
+					return(xmlStrdup(ns->href));
+				}
+				ns = ns->next;
+			}
+			return NULL;
+		}
+		return(xmlGetNoNsProp(reader->node, name));
+	}
+
+    /*
+     * Namespace default decl
+     */
+    if (xmlStrEqual(prefix, BAD_CAST "xmlns")) {
+		ns = reader->node->nsDef;
+		while (ns != NULL) {
+			if ((ns->prefix != NULL) && (xmlStrEqual(ns->prefix, localname))) {
+				ret = xmlStrdup(ns->href);
+				break;
+			}
+			ns = ns->next;
+		}
+    } else {
+		ns = xmlSearchNs(reader->node->doc, reader->node, prefix);
+		if (ns != NULL)
+			ret = xmlGetNsProp(reader->node, localname, ns->href);
+	}
 
     xmlFree(localname);
     if (prefix != NULL)