Get rid of xreadlines() (methods).
diff --git a/Doc/lib/libbz2.tex b/Doc/lib/libbz2.tex
index f40b66f..11801fe 100644
--- a/Doc/lib/libbz2.tex
+++ b/Doc/lib/libbz2.tex
@@ -79,15 +79,6 @@
 is an approximate bound on the total number of bytes in the lines returned.
 \end{methoddesc}
 
-\begin{methoddesc}[BZ2File]{xreadlines}{}
-For backward compatibility. \class{BZ2File} objects now include the
-performance optimizations previously implemented in the
-\module{xreadlines} module.
-\deprecated{2.3}{This exists only for compatibility with the method by
-                 this name on \class{file} objects, which is
-                 deprecated.  Use \code{for line in file} instead.}
-\end{methoddesc}
-
 \begin{methoddesc}[BZ2File]{seek}{offset\optional{, whence}}
 Move to new file position. Argument \var{offset} is a byte count. Optional
 argument \var{whence} defaults to \code{0} (offset from start of file,
diff --git a/Doc/lib/libstdtypes.tex b/Doc/lib/libstdtypes.tex
index 5d15375..d2a0425 100644
--- a/Doc/lib/libstdtypes.tex
+++ b/Doc/lib/libstdtypes.tex
@@ -1583,12 +1583,6 @@
   implemented, or cannot be implemented efficiently.
 \end{methoddesc}
 
-\begin{methoddesc}[file]{xreadlines}{}
-  This method returns the same thing as \code{iter(f)}.
-  \versionadded{2.1}
-  \deprecated{2.3}{Use \samp{for \var{line} in \var{file}} instead.}
-\end{methoddesc}
-
 \begin{methoddesc}[file]{seek}{offset\optional{, whence}}
   Set the file's current position, like \code{stdio}'s \cfunction{fseek()}.
   The \var{whence} argument is optional and defaults to \code{0}
diff --git a/Doc/tools/undoc_symbols.py b/Doc/tools/undoc_symbols.py
index 3d776fa..782ab6c 100644
--- a/Doc/tools/undoc_symbols.py
+++ b/Doc/tools/undoc_symbols.py
@@ -50,7 +50,7 @@
 
 def findnames(file, prefixes=()):
     names = {}
-    for line in file.xreadlines():
+    for line in file:
         if line[0] == '!':
             continue
         fields = line.split()