__getslice__():  Make this use the constructor form that gets a sequence
                 as a parameter; this was the only use of the base
                 constructor or surgical alteration of another object's
                 data attribute.

This change simplifies the constructor requirements for subclasses.

This relates to SourceForge bug #115928.
diff --git a/Lib/UserList.py b/Lib/UserList.py
index aab5119..e79faea 100644
--- a/Lib/UserList.py
+++ b/Lib/UserList.py
@@ -24,9 +24,7 @@
     def __delitem__(self, i): del self.data[i]
     def __getslice__(self, i, j):
         i = max(i, 0); j = max(j, 0)
-        userlist = self.__class__()
-        userlist.data[:] = self.data[i:j]
-        return userlist
+        return self.__class__(self.data[i:j])
     def __setslice__(self, i, j, other):
         i = max(i, 0); j = max(j, 0)
         if isinstance(other, UserList):