diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index 4118da4..8862661 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -356,7 +356,7 @@
         # We don't want them in the interned dict and if they aren't
         # actually interned, we don't want to create the appearance
         # that they are by allowing intern() to succeeed.
-        class S(str):
+        class S(str8):
             def __hash__(self):
                 return 123
 
@@ -368,6 +368,17 @@
         setattr(s, s, s)
         self.assertEqual(getattr(s, s), s)
 
+        s = "never interned as unicode before"
+        self.assert_(sys.intern(s) is s)
+        s2 = s.swapcase().swapcase()
+        self.assert_(sys.intern(s2) is s)
+
+        class U(str):
+            def __hash__(self):
+                return 123
+
+        self.assertRaises(TypeError, sys.intern, U("abc"))
+
 
 def test_main():
     test.test_support.run_unittest(SysModuleTest)
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 1756834..a8bb918 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -266,14 +266,21 @@
 	PyObject *s;
 	if (!PyArg_ParseTuple(args, "S:intern", &s))
 		return NULL;
-	if (!PyString_CheckExact(s)) {
-		PyErr_SetString(PyExc_TypeError,
-				"can't intern subclass of string");
+	if (PyString_CheckExact(s)) {
+		Py_INCREF(s);
+		PyString_InternInPlace(&s);
+		return s;
+	}
+	else if (PyUnicode_CheckExact(s)) {
+		Py_INCREF(s);
+		PyUnicode_InternInPlace(&s);
+		return s;
+	}
+	else {
+		PyErr_Format(PyExc_TypeError,
+				"can't intern %.400s", s->ob_type->tp_name);
 		return NULL;
 	}
-	Py_INCREF(s);
-	PyString_InternInPlace(&s);
-	return s;
 }
 
 PyDoc_STRVAR(intern_doc,
