Issue 2235: __hash__ is once again inherited by default, but inheritance can be blocked explicitly so that collections.Hashable remains meaningful
diff --git a/Lib/UserString.py b/Lib/UserString.py
index 4460797..726b3f7 100755
--- a/Lib/UserString.py
+++ b/Lib/UserString.py
@@ -150,8 +150,10 @@
         warnpy3k('the class UserString.MutableString has been removed in '
                     'Python 3.0', stacklevel=2)
         self.data = string
-    def __hash__(self):
-        raise TypeError, "unhashable type (it is mutable)"
+
+    # We inherit object.__hash__, so we must deny this explicitly
+    __hash__ = None
+
     def __setitem__(self, index, sub):
         if isinstance(index, slice):
             if isinstance(sub, UserString):