diff --git a/Doc/library/operator.rst b/Doc/library/operator.rst
index a0a767b..37996e0 100644
--- a/Doc/library/operator.rst
+++ b/Doc/library/operator.rst
@@ -210,24 +210,12 @@
    Remove the value of *a* at index *b*.
 
  
-.. function:: delslice(a, b, c)
-              __delslice__(a, b, c)
-
-   Delete the slice of *a* from index *b* to index *c-1*.
-
-
 .. function:: getitem(a, b)
               __getitem__(a, b)
 
    Return the value of *a* at index *b*.
 
 
-.. function:: getslice(a, b, c)
-              __getslice__(a, b, c)
-
-   Return the slice of *a* from index *b* to index *c-1*.
-
-
 .. function:: indexOf(a, b)
 
    Return the index of the first of occurrence of *b* in *a*.
@@ -245,12 +233,6 @@
    Set the value of *a* at index *b* to *c*.
 
 
-.. function:: setslice(a, b, c, v)
-              __setslice__(a, b, c, v)
-
-   Set the slice of *a* from index *b* to index *c-1* to the sequence *v*.
-
-
 Many operations have an "in-place" version.  The following functions provide a
 more primitive access to in-place operators than the usual syntax does; for
 example, the :term:`statement` ``x += y`` is equivalent to
@@ -533,12 +515,6 @@
 +-----------------------+-------------------------+---------------------------------+
 | Sequence Repitition   | ``seq * i``             | ``repeat(seq, i)``              |
 +-----------------------+-------------------------+---------------------------------+
-| Slice Assignment      | ``seq[i:j] = values``   | ``setslice(seq, i, j, values)`` |
-+-----------------------+-------------------------+---------------------------------+
-| Slice Deletion        | ``del seq[i:j]``        | ``delslice(seq, i, j)``         |
-+-----------------------+-------------------------+---------------------------------+
-| Slicing               | ``seq[i:j]``            | ``getslice(seq, i, j)``         |
-+-----------------------+-------------------------+---------------------------------+
 | String Formatting     | ``s % obj``             | ``mod(s, obj)``                 |
 +-----------------------+-------------------------+---------------------------------+
 | Subtraction           | ``a - b``               | ``sub(a, b)``                   |
