Index: Objects/unicodeobject.c
===================================================================
--- Objects/unicodeobject.c	(revision 58468)
+++ Objects/unicodeobject.c	(working copy)
@@ -6224,16 +6224,6 @@
     if (PyUnicode_Check(left) && PyUnicode_Check(right))
         return unicode_compare((PyUnicodeObject *)left,
                                (PyUnicodeObject *)right);
-    if ((PyString_Check(left) && PyUnicode_Check(right)) ||
-        (PyUnicode_Check(left) && PyString_Check(right))) {
-        if (PyUnicode_Check(left))
-            left = _PyUnicode_AsDefaultEncodedString(left, NULL);
-        if (PyUnicode_Check(right))
-            right = _PyUnicode_AsDefaultEncodedString(right, NULL);
-        assert(PyString_Check(left));
-        assert(PyString_Check(right));
-        return PyObject_Compare(left, right);
-    }
     PyErr_Format(PyExc_TypeError,
                  "Can't compare %.100s and %.100s",
                  left->ob_type->tp_name,
Index: Lib/test/test_unicode.py
===================================================================
--- Lib/test/test_unicode.py	(revision 58468)
+++ Lib/test/test_unicode.py	(working copy)
@@ -200,6 +200,10 @@
         self.checkequalnofix('one@two!three!', 'one!two!three!', 'replace', '!', '@', 1)
         self.assertRaises(TypeError, 'replace'.replace, "r", 42)
 
+    def test_str8_comparison(self):
+        self.assertEqual('abc' == str8('abc'), False)
+        self.assertEqual('abc' != str8('abc'), True)
+
     def test_comparison(self):
         # Comparisons:
         self.assertEqual('abc', 'abc')
