Fixing broken links in doc, part 4: some more breaks and redirects
diff --git a/Doc/about.rst b/Doc/about.rst
index 678168b..3ea311f 100644
--- a/Doc/about.rst
+++ b/Doc/about.rst
@@ -6,7 +6,7 @@
 These documents are generated from `reStructuredText`_ sources by `Sphinx`_, a
 document processor specifically written for the Python documentation.
 
-.. _reStructuredText: http://docutils.sf.net/rst.html
+.. _reStructuredText: http://docutils.sourceforge.net/rst.html
 .. _Sphinx: http://sphinx-doc.org/
 
 .. In the online version of these documents, you can submit comments and suggest
@@ -21,7 +21,7 @@
 
 * Fred L. Drake, Jr., the creator of the original Python documentation toolset
   and writer of much of the content;
-* the `Docutils <http://docutils.sf.net/>`_ project for creating
+* the `Docutils <http://docutils.sourceforge.net/>`_ project for creating
   reStructuredText and the Docutils suite;
 * Fredrik Lundh for his `Alternative Python Reference
   <http://effbot.org/zone/pyref.htm>`_ project from which Sphinx got many good
diff --git a/Doc/distutils/setupscript.rst b/Doc/distutils/setupscript.rst
index 67327bd..d2be040 100644
--- a/Doc/distutils/setupscript.rst
+++ b/Doc/distutils/setupscript.rst
@@ -625,7 +625,7 @@
 
 'long string'
     Multiple lines of plain text in reStructuredText format (see
-    http://docutils.sf.net/).
+    http://docutils.sourceforge.net/).
 
 'list of strings'
     See below.
diff --git a/Doc/faq/extending.rst b/Doc/faq/extending.rst
index 2aca607..ccd8b28 100644
--- a/Doc/faq/extending.rst
+++ b/Doc/faq/extending.rst
@@ -53,7 +53,7 @@
 If you need to interface to some C or C++ library for which no Python extension
 currently exists, you can try wrapping the library's data types and functions
 with a tool such as `SWIG <http://www.swig.org>`_.  `SIP
-<http://www.riverbankcomputing.co.uk/software/sip/>`__, `CXX
+<http://www.riverbankcomputing.co.uk/software/sip/intro>`__, `CXX
 <http://cxx.sourceforge.net/>`_ `Boost
 <http://www.boost.org/libs/python/doc/index.html>`_, or `Weave
 <http://docs.scipy.org/doc/scipy-dev/reference/tutorial/weave.html>`_ are also
diff --git a/Doc/faq/general.rst b/Doc/faq/general.rst
index 1359afe..8dc8a19 100644
--- a/Doc/faq/general.rst
+++ b/Doc/faq/general.rst
@@ -53,7 +53,7 @@
 unmodified), or to sell products that incorporate Python in some form.  We would
 still like to know about all commercial use of Python, of course.
 
-See `the PSF license page <https://www.python.org/psf/license/>`_ to find further
+See `the PSF license page <https://docs.python.org/3/license/>`_ to find further
 explanations and a link to the full text of the license.
 
 The Python logo is trademarked, and in certain cases permission is required to
@@ -178,8 +178,8 @@
 .. XXX mention py3k
 
 The standard documentation for the current stable version of Python is available
-at https://docs.python.org/.  PDF, plain text, and downloadable HTML versions are
-also available at https://docs.python.org/download.html.
+at https://docs.python.org/3/.  PDF, plain text, and downloadable HTML versions are
+also available at https://docs.python.org/3/download.html.
 
 The documentation is written in reStructuredText and processed by `the Sphinx
 documentation tool <http://sphinx-doc.org/>`__.  The reStructuredText source for
diff --git a/Doc/faq/gui.rst b/Doc/faq/gui.rst
index 5a77016..5e1d8be 100644
--- a/Doc/faq/gui.rst
+++ b/Doc/faq/gui.rst
@@ -48,7 +48,7 @@
 ---
 
 There are bindings available for the Qt toolkit (using either `PyQt
-<http://www.riverbankcomputing.co.uk/software/pyqt/>`_ or `PySide
+<http://www.riverbankcomputing.co.uk/software/pyqt/intro>`_ or `PySide
 <http://www.pyside.org/>`_) and for KDE (`PyKDE <https://techbase.kde.org/Development/Languages/Python>`__).
 PyQt is currently more mature than PySide, but you must buy a PyQt license from
 `Riverbank Computing <http://www.riverbankcomputing.co.uk/software/pyqt/license>`_
diff --git a/Doc/faq/library.rst b/Doc/faq/library.rst
index 36b3e07..979df9e 100644
--- a/Doc/faq/library.rst
+++ b/Doc/faq/library.rst
@@ -181,7 +181,7 @@
 
 The :mod:`pydoc` module can create HTML from the doc strings in your Python
 source code.  An alternative for creating API documentation purely from
-docstrings is `epydoc <http://epydoc.sf.net/>`_.  `Sphinx
+docstrings is `epydoc <http://epydoc.sourceforge.net/>`_.  `Sphinx
 <http://sphinx-doc.org>`_ can also include docstring content.
 
 
diff --git a/Doc/faq/programming.rst b/Doc/faq/programming.rst
index 54b2369..588066d 100644
--- a/Doc/faq/programming.rst
+++ b/Doc/faq/programming.rst
@@ -61,7 +61,7 @@
 
 PyChecker is a static analysis tool that finds bugs in Python source code and
 warns about code complexity and style.  You can get PyChecker from
-http://pychecker.sf.net.
+http://pychecker.sourceforge.net/.
 
 `Pylint <http://www.logilab.org/projects/pylint>`_ is another tool that checks
 if a module satisfies a coding standard, and also makes it possible to write
diff --git a/Doc/howto/cporting.rst b/Doc/howto/cporting.rst
index 6ebcc41..d7a7086 100644
--- a/Doc/howto/cporting.rst
+++ b/Doc/howto/cporting.rst
@@ -252,6 +252,6 @@
 =============
 
 If you are writing a new extension module, you might consider `Cython
-<http://www.cython.org>`_.  It translates a Python-like language to C.  The
+<http://cython.org/>`_.  It translates a Python-like language to C.  The
 extension modules it creates are compatible with Python 3 and Python 2.
 
diff --git a/Doc/howto/pyporting.rst b/Doc/howto/pyporting.rst
index 109a37b..e1a4609 100644
--- a/Doc/howto/pyporting.rst
+++ b/Doc/howto/pyporting.rst
@@ -609,11 +609,10 @@
 .. _future: http://python-future.org/
 .. _modernize: https://github.com/mitsuhiko/python-modernize
 .. _Porting to Python 3: http://python3porting.com/
-.. _PyPI: https://pypi.python.org/
+.. _PyPI: https://pypi.python.org/pypi
 .. _Python 3 Packages: https://pypi.python.org/pypi?:action=browse&c=533&show=all
 .. _Python 3 Q & A: http://ncoghlan-devs-python-notes.readthedocs.org/en/latest/python3/questions_and_answers.html
 .. _python-porting: https://mail.python.org/mailman/listinfo/python-porting
 .. _six: https://pypi.python.org/pypi/six
 .. _tox: https://pypi.python.org/pypi/tox
 .. _trove classifiers: https://pypi.python.org/pypi?%3Aaction=list_classifiers
-
diff --git a/Doc/howto/webservers.rst b/Doc/howto/webservers.rst
index 94a3762..6534753 100644
--- a/Doc/howto/webservers.rst
+++ b/Doc/howto/webservers.rst
@@ -519,7 +519,7 @@
 
    * `Mako <http://www.makotemplates.org/>`_
    * `Genshi <http://genshi.edgewall.org/>`_
-   * `Jinja <http://jinja.pocoo.org/2/>`_
+   * `Jinja <http://jinja.pocoo.org/>`_
 
 .. seealso::
 
diff --git a/Doc/library/crypto.rst b/Doc/library/crypto.rst
index 21cc251..670cbf1 100644
--- a/Doc/library/crypto.rst
+++ b/Doc/library/crypto.rst
@@ -26,6 +26,5 @@
 Hardcore cypherpunks will probably find the cryptographic modules written by
 A.M. Kuchling of further interest; the package contains modules for various
 encryption algorithms, most notably AES.  These modules are not distributed with
-Python but available separately.  See the URL
-http://www.pycrypto.org  for more information.
-
+Python but available separately.  See the URL http://www.pycrypto.org/ for more
+information.
diff --git a/Doc/library/datetime.rst b/Doc/library/datetime.rst
index 15a4fe4..4276e91 100644
--- a/Doc/library/datetime.rst
+++ b/Doc/library/datetime.rst
@@ -514,7 +514,7 @@
    Return a 3-tuple, (ISO year, ISO week number, ISO weekday).
 
    The ISO calendar is a widely used variant of the Gregorian calendar. See
-   http://www.phys.uu.nl/~vgent/calendar/isocalendar.htm for a good
+   http://www.staff.science.uu.nl/~gent0113/calendar/isocalendar.htm for a good
    explanation.
 
    The ISO year consists of 52 or 53 full weeks, and where a week starts on a
diff --git a/Doc/library/email.rst b/Doc/library/email.rst
index 4e90ce4..879c38f 100644
--- a/Doc/library/email.rst
+++ b/Doc/library/email.rst
@@ -222,7 +222,7 @@
 -------------------------------
 
 The :mod:`email` package was originally prototyped as a separate library called
-`mimelib <http://mimelib.sf.net/>`_. Changes have been made so that method names
+`mimelib <http://mimelib.sourceforge.net/>`_. Changes have been made so that method names
 are more consistent, and some methods or modules have either been added or
 removed.  The semantics of some of the methods have also changed.  For the most
 part, any functionality available in :mod:`mimelib` is still available in the
diff --git a/Doc/library/mimetypes.rst b/Doc/library/mimetypes.rst
index 8891e7a..740c2f6 100644
--- a/Doc/library/mimetypes.rst
+++ b/Doc/library/mimetypes.rst
@@ -44,7 +44,7 @@
 
    The optional *strict* argument is a flag specifying whether the list of known MIME types
    is limited to only the official types `registered with IANA
-   <http://www.iana.org/assignments/media-types/>`_.
+   <http://www.iana.org/assignments/media-types/media-types.xhtml>`_.
    When *strict* is ``True`` (the default), only the IANA types are supported; when
    *strict* is ``False``, some additional non-standard but commonly used MIME types
    are also recognized.
diff --git a/Doc/library/othergui.rst b/Doc/library/othergui.rst
index ba26e74..d75ca18 100644
--- a/Doc/library/othergui.rst
+++ b/Doc/library/othergui.rst
@@ -16,7 +16,7 @@
       `GNOME <http://www.gnome.org>`_.  An online `tutorial
       <http://www.pygtk.org/pygtk2tutorial/index.html>`_ is available.
 
-   `PyQt <http://www.riverbankcomputing.co.uk/software/pyqt/>`_
+   `PyQt <http://www.riverbankcomputing.co.uk/software/pyqt/intro>`_
       PyQt is a :program:`sip`\ -wrapped binding to the Qt toolkit.  Qt is an
       extensive C++ GUI application development framework that is
       available for Unix, Windows and Mac OS X. :program:`sip` is a tool
diff --git a/Doc/library/pyexpat.rst b/Doc/library/pyexpat.rst
index 20ca3bc..5876d1d 100644
--- a/Doc/library/pyexpat.rst
+++ b/Doc/library/pyexpat.rst
@@ -912,5 +912,5 @@
 .. [#] The encoding string included in XML output should conform to the
    appropriate standards. For example, "UTF-8" is valid, but "UTF8" is
    not. See http://www.w3.org/TR/2006/REC-xml11-20060816/#NT-EncodingDecl
-   and http://www.iana.org/assignments/character-sets\ .
+   and http://www.iana.org/assignments/character-sets/character-sets.xhtml.
 
diff --git a/Doc/library/ssl.rst b/Doc/library/ssl.rst
index 730e1fd..c52b073 100644
--- a/Doc/library/ssl.rst
+++ b/Doc/library/ssl.rst
@@ -1674,10 +1674,10 @@
    `RFC 4366: Transport Layer Security (TLS) Extensions <http://www.ietf.org/rfc/rfc4366>`_
        Blake-Wilson et. al.
 
-   `RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 <http://www.ietf.org/rfc/rfc5246>`_
+   `RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 <http://tools.ietf.org/html/rfc5246>`_
        T. Dierks et. al.
 
-   `RFC 6066: Transport Layer Security (TLS) Extensions <http://www.ietf.org/rfc/rfc6066>`_
+   `RFC 6066: Transport Layer Security (TLS) Extensions <http://tools.ietf.org/html/rfc6066>`_
        D. Eastlake
 
    `IANA TLS: Transport Layer Security (TLS) Parameters <http://www.iana.org/assignments/tls-parameters/tls-parameters.xml>`_
diff --git a/Doc/library/tkinter.rst b/Doc/library/tkinter.rst
index ddaeec7..29f6959 100644
--- a/Doc/library/tkinter.rst
+++ b/Doc/library/tkinter.rst
@@ -26,7 +26,7 @@
    `TKDocs <http://www.tkdocs.com/>`_
       Extensive tutorial plus friendlier widget pages for some of the widgets.
 
-   `Tkinter reference: a GUI for Python <http://infohost.nmt.edu/tcc/help/pubs/tkinter/>`_
+   `Tkinter reference: a GUI for Python <http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/index.html>`_
       On-line reference material.
 
    `Tkinter docs from effbot <http://effbot.org/tkinterbook/>`_
diff --git a/Doc/library/xml.dom.minidom.rst b/Doc/library/xml.dom.minidom.rst
index 1ff7024..5cde5e2 100644
--- a/Doc/library/xml.dom.minidom.rst
+++ b/Doc/library/xml.dom.minidom.rst
@@ -276,4 +276,4 @@
 .. [#] The encoding string included in XML output should conform to the
    appropriate standards. For example, "UTF-8" is valid, but "UTF8" is
    not. See http://www.w3.org/TR/2006/REC-xml11-20060816/#NT-EncodingDecl
-   and http://www.iana.org/assignments/character-sets\ .
+   and http://www.iana.org/assignments/character-sets/character-sets.xhtml.
diff --git a/Doc/library/xml.etree.elementtree.rst b/Doc/library/xml.etree.elementtree.rst
index f14742e..3afabb4 100644
--- a/Doc/library/xml.etree.elementtree.rst
+++ b/Doc/library/xml.etree.elementtree.rst
@@ -954,4 +954,4 @@
 .. [#] The encoding string included in XML output should conform to the
    appropriate standards.  For example, "UTF-8" is valid, but "UTF8" is
    not.  See http://www.w3.org/TR/2006/REC-xml11-20060816/#NT-EncodingDecl
-   and http://www.iana.org/assignments/character-sets.
+   and http://www.iana.org/assignments/character-sets/character-sets.xhtml.
diff --git a/Doc/using/windows.rst b/Doc/using/windows.rst
index 03750f5..d100303 100644
--- a/Doc/using/windows.rst
+++ b/Doc/using/windows.rst
@@ -293,7 +293,7 @@
 If you want to compile CPython yourself, first thing you should do is get the
 `source <https://www.python.org/download/source/>`_. You can download either the
 latest release's source or just grab a fresh `checkout
-<https://docs.python.org/devguide/setup.html#checking-out-the-code>`_.
+<https://docs.python.org/devguide/setup.html#getting-the-source-code>`_.
 
 For Microsoft Visual C++, which is the compiler with which official Python
 releases are built, the source tree contains solutions/project files.  View the
@@ -336,7 +336,7 @@
 
 .. seealso::
 
-   `Python Programming On Win32 <http://www.oreilly.com/catalog/pythonwin32/>`_
+   `Python Programming On Win32 <http://shop.oreilly.com/product/9781565926219.do>`_
       "Help for Windows Programmers"
       by Mark Hammond and Andy Robinson, O'Reilly Media, 2000,
       ISBN 1-56592-621-8
diff --git a/Doc/whatsnew/2.0.rst b/Doc/whatsnew/2.0.rst
index f7998e6..b6c4fb9 100644
--- a/Doc/whatsnew/2.0.rst
+++ b/Doc/whatsnew/2.0.rst
@@ -1003,7 +1003,7 @@
 
 The XML Special Interest Group has been working on XML-related Python code for a
 while.  Its code distribution, called PyXML, is available from the SIG's Web
-pages at https://www.python.org/sigs/xml-sig/. The PyXML distribution also used
+pages at https://www.python.org/community/sigs/current/xml-sig. The PyXML distribution also used
 the package name ``xml``.  If you've written programs that used PyXML, you're
 probably wondering about its compatibility with the 2.0 :mod:`xml` package.
 
diff --git a/Doc/whatsnew/2.3.rst b/Doc/whatsnew/2.3.rst
index d017c64..d9f1b7e 100644
--- a/Doc/whatsnew/2.3.rst
+++ b/Doc/whatsnew/2.3.rst
@@ -1330,7 +1330,7 @@
   (Contributed by Kevin O'Connor.)
 
 * The IDLE integrated development environment has been updated using the code
-  from the IDLEfork project (http://idlefork.sf.net).  The most notable feature is
+  from the IDLEfork project (http://idlefork.sourceforge.net).  The most notable feature is
   that the code being developed is now executed in a subprocess, meaning that
   there's no longer any need for manual ``reload()`` operations. IDLE's core code
   has been incorporated into the standard library as the :mod:`idlelib` package.
diff --git a/Doc/whatsnew/2.6.rst b/Doc/whatsnew/2.6.rst
index 54ded7a..edba4e1 100644
--- a/Doc/whatsnew/2.6.rst
+++ b/Doc/whatsnew/2.6.rst
@@ -236,7 +236,7 @@
    `Sphinx <http://sphinx-doc.org/>`__
      Documentation and code for the Sphinx toolchain.
 
-   `Docutils <http://docutils.sf.net>`__
+   `Docutils <http://docutils.sourceforge.net>`__
      The underlying reStructuredText parser and toolset.
 
 
@@ -2359,7 +2359,7 @@
   negotiation itself.  (Patch contributed by Bill Fenner;
   :issue:`829951`.)
 
-* The :mod:`socket` module now supports TIPC (http://tipc.sf.net),
+* The :mod:`socket` module now supports TIPC (http://tipc.sourceforge.net/),
   a high-performance non-IP-based protocol designed for use in clustered
   environments.  TIPC addresses are 4- or 5-tuples.
   (Contributed by Alberto Bertogli; :issue:`1646`.)
diff --git a/Doc/whatsnew/2.7.rst b/Doc/whatsnew/2.7.rst
index 6aeea32..9d26893 100644
--- a/Doc/whatsnew/2.7.rst
+++ b/Doc/whatsnew/2.7.rst
@@ -708,7 +708,7 @@
   The :func:`contextlib.nested` function provides a very similar
   function, so it's no longer necessary and has been deprecated.
 
-  (Proposed in http://codereview.appspot.com/53094; implemented by
+  (Proposed in https://codereview.appspot.com/53094; implemented by
   Georg Brandl.)
 
 * Conversions between floating-point numbers and strings are