diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h
index dbeb883..d9cda95 100644
--- a/Include/unicodeobject.h
+++ b/Include/unicodeobject.h
@@ -61,6 +61,7 @@
 #ifndef Py_USING_UNICODE
 
 #define PyUnicode_Check(op)                 0
+#define PyUnicode_CheckExact(op)            0
 
 #else
 
@@ -373,6 +374,7 @@
 extern DL_IMPORT(PyTypeObject) PyUnicode_Type;
 
 #define PyUnicode_Check(op) PyObject_TypeCheck(op, &PyUnicode_Type)
+#define PyUnicode_CheckExact(op) ((op)->ob_type == &PyUnicode_Type)
 
 /* Fast access macros */
 #define PyUnicode_GET_SIZE(op) \
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index fea3255..a2ec475 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -1443,7 +1443,7 @@
     verify(str(s).__class__ is str)
 
     s = madstring("\x00" * 5)
-    #XXX verify(str(s) == "\x00" ( 5)
+    #XXX verify(str(s) == "\x00" * 5)
     verify(str(s).__class__ is str)
 
     class madunicode(unicode):
@@ -1460,7 +1460,7 @@
     verify(u.rev().rev() == madunicode(u"ABCDEF"))
     u = madunicode(u"12345")
     verify(unicode(u) == u"12345")
-    #XXX verify(unicode(u).__class__ is unicode)
+    verify(unicode(u).__class__ is unicode)
 
 def all():
     lists()
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 98691fd..a50b925 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -425,12 +425,20 @@
     }
     if (PyUnicode_Check(obj)) {
 	if (encoding) {
-	    PyErr_SetString(PyExc_TypeError,
+            PyErr_SetString(PyExc_TypeError,
 			    "decoding Unicode is not supported");
-	    return NULL;
+            return NULL;
 	}
-	Py_INCREF(obj);
-	v = obj;
+        if (PyUnicode_CheckExact(obj)) {
+	    Py_INCREF(obj);
+            v = obj;
+	}
+        else {
+            /* For a subclass of unicode, return a true unicode object
+               with the same string value. */
+            v = PyUnicode_FromUnicode(PyUnicode_AS_UNICODE(obj),
+                                      PyUnicode_GET_SIZE(obj));
+        }
 	goto done;
     }
     else if (PyString_Check(obj)) {
