diff -r 4acdb324a430 Lib/plistlib.py --- a/Lib/plistlib.py Wed Apr 06 23:02:46 2016 +0300 +++ b/Lib/plistlib.py Thu Apr 07 22:56:24 2016 +0300 @@ -224,11 +224,11 @@ class Data: def __eq__(self, other): if isinstance(other, self.__class__): - return self.data == other.data - elif isinstance(other, str): - return self.data == other + return self.data.__eq__(other.data) + elif isinstance(other, bytes): + return self.data.__eq__(other) else: - return id(self) == id(other) + return NotImplemented def __repr__(self): return "%s(%s)" % (self.__class__.__name__, repr(self.data)) diff -r 4acdb324a430 Lib/test/test_plistlib.py --- a/Lib/test/test_plistlib.py Wed Apr 06 23:02:46 2016 +0300 +++ b/Lib/test/test_plistlib.py Thu Apr 07 22:56:24 2016 +0300 @@ -506,15 +506,15 @@ class TestPlistlibDeprecated(unittest.Te cur = plistlib.loads(buf) self.assertEqual(cur, out_data) - self.assertNotEqual(cur, in_data) + self.assertEqual(cur, in_data) cur = plistlib.loads(buf, use_builtin_types=False) - self.assertNotEqual(cur, out_data) + self.assertEqual(cur, out_data) self.assertEqual(cur, in_data) with self.assertWarns(DeprecationWarning): cur = plistlib.readPlistFromBytes(buf) - self.assertNotEqual(cur, out_data) + self.assertEqual(cur, out_data) self.assertEqual(cur, in_data)