diff --git a/Lib/UserList.py b/Lib/UserList.py
index 116122f..348ea76 100644
--- a/Lib/UserList.py
+++ b/Lib/UserList.py
@@ -1,6 +1,8 @@
 """A more or less complete user-defined wrapper around list objects."""
 
-class UserList:
+import collections
+
+class UserList(collections.MutableSequence):
     def __init__(self, initlist=None):
         self.data = []
         if initlist is not None:
@@ -69,3 +71,5 @@
             self.data.extend(other.data)
         else:
             self.data.extend(other)
+
+collections.MutableSequence.register(UserList)
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
