diff --git a/Lib/UserString.py b/Lib/UserString.py
index a8b805f..615c135 100755
--- a/Lib/UserString.py
+++ b/Lib/UserString.py
@@ -6,10 +6,11 @@
 This module requires Python 1.6 or later.
 """
 import sys
+import collections
 
 __all__ = ["UserString","MutableString"]
 
-class UserString:
+class UserString(collections.Sequence):
     def __init__(self, seq):
         if isinstance(seq, str):
             self.data = seq
@@ -161,7 +162,9 @@
     def upper(self): return self.__class__(self.data.upper())
     def zfill(self, width): return self.__class__(self.data.zfill(width))
 
-class MutableString(UserString):
+collections.Sequence.register(UserString)
+
+class MutableString(UserString, collections.MutableSequence):
     """mutable string objects
 
     Python strings are immutable objects.  This has the advantage, that
@@ -230,6 +233,8 @@
         self.data *= n
         return self
 
+collections.MutableSequence.register(MutableString)
+
 if __name__ == "__main__":
     # execute the regression test to stdout, if called as a script:
     import os
