Merge from 3.4 into default.
diff --git a/.hgtags b/.hgtags
index 74d7d51..9c3af09 100644
--- a/.hgtags
+++ b/.hgtags
@@ -131,3 +131,6 @@
 ba32913eb13ec545a46dd0ce18035b6c416f0d78 v3.4.0b2
 a97ce3ecc96af79bd2e1ac66ce48d9138e0ca749 v3.4.0b3
 5e088cea8660677969113741c1313d570d977e02 v3.4.0rc1
+a300712ed38c9a242b736c44e806caea25a6dc05 v3.4.0rc2
+8a81cdab3e9d521daaef989fade94b16455fc3b8 v3.4.0rc3
+04f714765c13824c3bc2835d7b008908862e083a v3.4.0
diff --git a/Doc/license.rst b/Doc/license.rst
index 08e5464..6190fe0 100644
--- a/Doc/license.rst
+++ b/Doc/license.rst
@@ -84,9 +84,9 @@
    analyze, test, perform and/or display publicly, prepare derivative works,
    distribute, and otherwise use Python |release| alone or in any derivative
    version, provided, however, that PSF's License Agreement and PSF's notice of
-   copyright, i.e., "Copyright © 2001-2014 Python Software Foundation; All Rights
-   Reserved" are retained in Python |release| alone or in any derivative version
-   prepared by Licensee.
+   copyright, i.e., "Copyright © 2001-2014 Python Software Foundation; All
+   Rights Reserved" are retained in Python |release| alone or in any derivative
+   version prepared by Licensee.
 
 #. In the event Licensee prepares a derivative work that is based on or
    incorporates Python |release| or any part thereof, and wants to make the
diff --git a/Doc/whatsnew/3.4.rst b/Doc/whatsnew/3.4.rst
index 9cf51bd..1b751b0 100644
--- a/Doc/whatsnew/3.4.rst
+++ b/Doc/whatsnew/3.4.rst
@@ -61,10 +61,7 @@
    while :ref:`~mod.attr` will display as ``attr``.
 
 This article explains the new features in Python 3.4, compared to 3.3.
-
-.. Python 3.4 was released on TBD.
-
-For full details, see the
+Python 3.4 was released on March 16, 2014.  For full details, see the
 `changelog <http://docs.python.org/3.4/whatsnew/changelog.html>`_.
 
 
@@ -2284,7 +2281,7 @@
   name, they now set it to an empty list.  The previous behavior could cause
   the import system to do the wrong thing on submodule imports if there was
   also a directory with the same name as the frozen package.  The correct way
-  to determine if a module is a package or not is to use``hasattr(module,
+  to determine if a module is a package or not is to use ``hasattr(module,
   '__path__')`` (:issue:`18065`).
 
 * Frozen modules no longer define a ``__file__`` attribute. It's semantically
diff --git a/Include/patchlevel.h b/Include/patchlevel.h
index 4e4265c..72f540d 100644
--- a/Include/patchlevel.h
+++ b/Include/patchlevel.h
@@ -19,11 +19,11 @@
 #define PY_MAJOR_VERSION	3
 #define PY_MINOR_VERSION	4
 #define PY_MICRO_VERSION	0
-#define PY_RELEASE_LEVEL	PY_RELEASE_LEVEL_GAMMA
-#define PY_RELEASE_SERIAL	1
+#define PY_RELEASE_LEVEL	PY_RELEASE_LEVEL_FINAL
+#define PY_RELEASE_SERIAL	0
 
 /* Version as a string */
-#define PY_VERSION      	"3.4.0rc1+"
+#define PY_VERSION      	"3.4.0+"
 /*--end constants--*/
 
 /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
diff --git a/LICENSE b/LICENSE
index f9ca2c9..583f9f6 100644
--- a/LICENSE
+++ b/LICENSE
@@ -74,8 +74,8 @@
 distribute, and otherwise use Python alone or in any derivative version,
 provided, however, that PSF's License Agreement and PSF's notice of copyright,
 i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-2011, 2012, 2013, 2014 Python Software Foundation; All Rights Reserved" are retained
-in Python alone or in any derivative version prepared by Licensee.
+2011, 2012, 2013, 2014 Python Software Foundation; All Rights Reserved" are
+retained in Python alone or in any derivative version prepared by Licensee.
 
 3. In the event Licensee prepares a derivative work that is based on
 or incorporates Python or any part thereof, and wants to make
diff --git a/Misc/NEWS b/Misc/NEWS
index 7ef8e36..3de803b 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -2,8 +2,10 @@
 Python News
 +++++++++++
 
-What's New in Python 3.4.1?
-===========================
+What's New in Python 3.4.1rc1?
+==============================
+
+Release date: TBA
 
 Core and Builtins
 -----------------
@@ -16,9 +18,6 @@
 - Issue #20637: Key-sharing now also works for instance dictionaries of
   subclasses.  Patch by Peter Ingebretson.
 
-- Issue #20786: Fix signatures for dict.__delitem__ and
-  property.__delete__ builtins.
-
 Library
 -------
 
@@ -43,10 +42,6 @@
   as documented.  The pattern and source keyword parameters are left as
   deprecated aliases.
 
-- Issue #20839: Don't trigger a DeprecationWarning in the still supported
-  pkgutil.get_loader() API when __loader__ isn't set on a module (nor
-  when pkgutil.find_loader() is called directly).
-
 - Issue #20778: Fix modulefinder to work with bytecode-only modules.
 
 - Issue #20791: copy.copy() now doesn't make a copy when the input is
@@ -72,11 +67,47 @@
 
 - Issue #20743: Fix a reference leak in test_tcl.
 
-- Issue #20946: Correct alignment assumptions of some ctypes tests.
+Tools/Demos
+-----------
+
+- Issue #20535: PYTHONWARNING no longer affects the run_tests.py script.
+  Patch by Arfrever Frehtes Taifersar Arahesis.
+
+
+What's New in Python 3.4.0?
+===========================
+
+Release date: 2014-03-16
+
+Library
+-------
 
 - Issue #20939: Fix test_geturl failure in test_urllibnet due to
   new redirect of http://www.python.org/ to https://www.python.org.
 
+Documentation
+-------------
+
+- Merge in all documentation changes since branching 3.4.0rc1.
+
+
+What's New in Python 3.4.0 release candidate 3?
+===============================================
+
+Release date: 2014-03-09
+
+Core and Builtins
+-----------------
+
+- Issue #20786: Fix signatures for dict.__delitem__ and
+  property.__delete__ builtins.
+
+Library
+-------
+
+- Issue #20839: Don't trigger a DeprecationWarning in the still supported
+  pkgutil.get_loader() API when __loader__ isn't set on a module (nor
+  when pkgutil.find_loader() is called directly).
 
 Build
 -----
@@ -93,15 +124,9 @@
   uninstalling pip (rather than failing) if the user has updated pip to a
   different version from the one bundled with ensurepip.
 
-- Issue #20465: Update OS X and Windows installer builds to use 
+- Issue #20465: Update OS X and Windows installer builds to use
   SQLite 3.8.3.1.
 
-Tools/Demos
------------
-
-- Issue #20535: PYTHONWARNING no longer affects the run_tests.py script.
-  Patch by Arfrever Frehtes Taifersar Arahesis.
-
 
 What's New in Python 3.4.0 release candidate 2?
 ===============================================
@@ -111,6 +136,9 @@
 Core and Builtins
 -----------------
 
+- Issue #20625: Parameter names in __annotations__ were not mangled properly.
+  Discovered by Jonas Wielicki, patch by Yury Selivanov.
+
 - Issue #20261: In pickle, lookup __getnewargs__ and __getnewargs_ex__ on the
   type of the object.
 
@@ -121,61 +149,12 @@
   don't clear anymore the state of Python threads early during the Python
   shutdown.
 
-- Issue #20595: Make getargs.c C89 compliant.
-
-- Issue #20625: Parameter names in __annotations__ were not mangled properly.
-  Discovered by Jonas Wielicki, patch by Yury Selivanov.
-
 Library
 -------
 
 - Issue #20710: The pydoc summary line no longer displays the "self" parameter
   for bound methods.
 
-- Issue #20654: Fixed pydoc for enums with zero value.  Patch by Vajrasky Kok.
-
-- Issue #20635: Fixed grid_columnconfigure() and grid_rowconfigure() methods of
-  Tkinter widgets to work in wantobjects=True mode.
-
-- Issue #19612: On Windows, subprocess.Popen.communicate() now ignores
-  OSError(22, 'Invalid argument') when writing input data into stdin, whereas
-  the process already exited.
-
-- Issue #20320: select.select() and select.kqueue.control() now round the
-  timeout aways from zero, instead of rounding towards zero.
-
-- Issue #20616: Add a format() method to tracemalloc.Traceback.
-
-- Issue #19744: the ensurepip installation step now just prints a warning to
-  stderr rather than failing outright if SSL/TLS is unavailable. This allows
-  local installation of POSIX builds without SSL/TLS support.
-
-- Issue #6815: os.path.expandvars() now supports non-ASCII environment
-  variables names and values.
-
-- Issue #17671: Fixed a crash when use non-initialized io.BufferedRWPair.
-  Based on patch by Stephen Tu.
-
-- Issue #8478: Untokenizer.compat processes first token from iterator input.
-  Patch based on lines from Georg Brandl, Eric Snow, and Gareth Rees.
-
-- Issue #20594: Avoid name clash with the libc function posix_close.
-
-- Issue #19856: shutil.move() failed to move a directory to other directory
-  on Windows if source name ends with os.altsep.
-
-- Issue #20673: Implement support for UNIX Domain Sockets in asyncio.
-  New APIs: loop.create_unix_connection(), loop.create_unix_server(),
-  streams.open_unix_connection(), and streams.start_unix_server().
-
-- Issue #20681: Add new error handling API in asyncio. New APIs:
-  loop.set_exception_handler(), loop.default_exception_handler(), and
-  loop.call_exception_handler().
-
-- Issue #20684: Fix inspect.getfullargspec() to not to follow __wrapped__
-  chains. Make its behaviour consistent with bound methods first argument.
-  Patch by Nick Coghlan and Yury Selivanov.
-
 - Issue #20566: Change asyncio.as_completed() to use a Queue, to
   avoid O(N**2) behavior.
 
@@ -195,14 +174,25 @@
   fix _check_resolved_address() for IPv6 address; and other minor
   improvements, along with multiple documentation updates.
 
-Tests
------
+- Issue #20684: Fix inspect.getfullargspec() to not to follow __wrapped__
+  chains. Make its behaviour consistent with bound methods first argument.
+  Patch by Nick Coghlan and Yury Selivanov.
 
-- Issue #20510: Rewrote test_exit in test_sys to match existing comments,
-  use modern unittest features, and use helpers from test.script_helper
-  instead of using subprocess directly.  Patch by Gareth Rees.
+- Issue #20681: Add new error handling API in asyncio. New APIs:
+  loop.set_exception_handler(), loop.default_exception_handler(), and
+  loop.call_exception_handler().
 
-- Issue #20605: Make test_socket getaddrinfo OS X segfault test more robust.
+- Issue #20673: Implement support for UNIX Domain Sockets in asyncio.
+  New APIs: loop.create_unix_connection(), loop.create_unix_server(),
+  streams.open_unix_connection(), and streams.start_unix_server().
+
+- Issue #20616: Add a format() method to tracemalloc.Traceback.
+
+- Issue #19744: the ensurepip installation step now just prints a warning to
+  stderr rather than failing outright if SSL/TLS is unavailable. This allows
+  local installation of POSIX builds without SSL/TLS support.
+
+- Issue #20594: Avoid name clash with the libc function posix_close.
 
 Build
 -----