diff --git a/ChangeLog b/ChangeLog
index 68bb52b..eb017ca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Mon Mar  7 12:12:01 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+	* xmlschemastypes.c: Tiny changes in the comparison functions
+	  I forgot to commit last time.
+
 Fri Mar  4 22:51:42 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
 
 	* xmlschemas.c: Added IDC validation of anySimpleType attribute
diff --git a/xmlschemastypes.c b/xmlschemastypes.c
index 6ee6a1e..b5d48c5 100644
--- a/xmlschemastypes.c
+++ b/xmlschemastypes.c
@@ -687,7 +687,9 @@
  * @value:  the value
  *
  * Allocate a new simple type value. The type can be 
- * of XML_SCHEMAS_STRING.
+ * of XML_SCHEMAS_STRING. 
+ * WARNING: This one is intended to be expanded for other
+ * string based types. We need this for anySimpleType as well.
  *
  * Returns a pointer to the new value or NULL in case of error
  */
@@ -3085,12 +3087,12 @@
         case XML_SCHEMAS_IDREF:
         case XML_SCHEMAS_ENTITY:
         case XML_SCHEMAS_NMTOKEN:
+	case XML_SCHEMAS_ANYURI:
             ret = xmlSchemaDupVal(val);
             if (val->value.str != NULL)
                 ret->value.str = xmlStrdup(BAD_CAST val->value.str);
             return (ret);
-        case XML_SCHEMAS_QNAME:
-        case XML_SCHEMAS_ANYURI:
+        case XML_SCHEMAS_QNAME:        
         case XML_SCHEMAS_NOTATION:
             ret = xmlSchemaDupVal(val);
             if (val->value.qname.name != NULL)
@@ -4081,7 +4083,6 @@
     switch (x->type) {
 	case XML_SCHEMAS_UNKNOWN:
 	case XML_SCHEMAS_ANYTYPE:
-	case XML_SCHEMAS_ANYSIMPLETYPE:
 	    return(-2);
         case XML_SCHEMAS_INTEGER:
         case XML_SCHEMAS_NPINTEGER:
@@ -4137,6 +4138,11 @@
                 (y->type == XML_SCHEMAS_GYEARMONTH))
                 return (xmlSchemaCompareDates(x, y));
             return (-2);
+	/* 
+	* Note that we will support comparison of string types against
+	* anySimpleType as well.
+	*/
+	case XML_SCHEMAS_ANYSIMPLETYPE:
 	case XML_SCHEMAS_STRING:
         case XML_SCHEMAS_NORMSTRING:		
         case XML_SCHEMAS_TOKEN:
@@ -4156,7 +4162,8 @@
 		TODO
 		return (-2);
 	    }
-            if ((y->type == XML_SCHEMAS_STRING) ||
+            if ((y->type == XML_SCHEMAS_ANYSIMPLETYPE) ||
+		(y->type == XML_SCHEMAS_STRING) ||
 		(y->type == XML_SCHEMAS_NORMSTRING) ||
                 (y->type == XML_SCHEMAS_TOKEN) ||
                 (y->type == XML_SCHEMAS_LANGUAGE) ||
