diff --git a/Lib/test/test_descrtut.py b/Lib/test/test_descrtut.py
index e72567d..a0de4cc 100644
--- a/Lib/test/test_descrtut.py
+++ b/Lib/test/test_descrtut.py
@@ -37,16 +37,16 @@
 Here's the new type at work:
 
     >>> print defaultdict               # show our type
-    <type 'test.test_descrtut.defaultdict'>
+    <class 'test.test_descrtut.defaultdict'>
     >>> print type(defaultdict)         # its metatype
     <type 'type'>
     >>> a = defaultdict(default=0.0)    # create an instance
     >>> print a                         # show the instance
     {}
     >>> print type(a)                   # show its type
-    <type 'test.test_descrtut.defaultdict'>
+    <class 'test.test_descrtut.defaultdict'>
     >>> print a.__class__               # show its class
-    <type 'test.test_descrtut.defaultdict'>
+    <class 'test.test_descrtut.defaultdict'>
     >>> print type(a) is a.__class__    # its type is its class
     1
     >>> a[1] = 3.25                     # modify the instance
diff --git a/Lib/test/test_repr.py b/Lib/test/test_repr.py
index b7d9374..1c63e4d 100644
--- a/Lib/test/test_repr.py
+++ b/Lib/test/test_repr.py
@@ -208,7 +208,7 @@
 ''')
         from areallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncation import foo
         eq(repr(foo.foo),
-               "<type 'areallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncation.foo.foo'>")
+               "<class 'areallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncation.foo.foo'>")
 
     def test_object(self):
         # XXX Test the repr of a type with a really long tp_name but with no
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 877a3bd..964164f 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -114,6 +114,7 @@
 type_repr(PyTypeObject *type)
 {
 	PyObject *mod, *name, *rtn;
+	char *kind;
 
 	mod = type_module(type, NULL);
 	if (mod == NULL)
@@ -126,13 +127,19 @@
 	if (name == NULL)
 		return NULL;
 
+	if (type->tp_flags & Py_TPFLAGS_HEAPTYPE)
+		kind = "class";
+	else
+		kind = "type";
+
 	if (mod != NULL && strcmp(PyString_AS_STRING(mod), "__builtin__")) {
-		rtn = PyString_FromFormat("<type '%s.%s'>",
+		rtn = PyString_FromFormat("<%s '%s.%s'>",
+					  kind,
 					  PyString_AS_STRING(mod),
 					  PyString_AS_STRING(name));
 	}
 	else
-		rtn = PyString_FromFormat("<type '%s'>", type->tp_name);
+		rtn = PyString_FromFormat("<%s '%s'>", kind, type->tp_name);
 
 	Py_XDECREF(mod);
 	Py_DECREF(name);
@@ -3365,12 +3372,12 @@
 
 	if (su->obj)
 		return PyString_FromFormat(
-			"<super: <type '%s'>, <%s object>>",
+			"<super: <class '%s'>, <%s object>>",
 			su->type ? su->type->tp_name : "NULL",
 			su->obj->ob_type->tp_name);
 	else
 		return PyString_FromFormat(
-			"<super: <type '%s'>, NULL>",
+			"<super: <class '%s'>, NULL>",
 			su->type ? su->type->tp_name : "NULL");
 }
 
