diff --git a/Doc/whatsnew/2.7.rst b/Doc/whatsnew/2.7.rst
index 0eca580..4171593 100644
--- a/Doc/whatsnew/2.7.rst
+++ b/Doc/whatsnew/2.7.rst
@@ -73,6 +73,11 @@
 * The new format specifier described in :ref:`pep-0378`.
 * The :class:`memoryview` object.
 * A small subset of the :mod:`importlib` module `described below <#importlib-section>`__.
+* Float-to-string and string-to-float conversions now round their
+  results more correctly.  And :func:`repr` of a floating-point
+  number *x* returns a result that's guaranteed to round back to the
+  same number when converted back to a string.
+* The :cfunc:`PyLong_AsLongAndOverflow` C API function.
 
 One porting change: the :option:`-3` switch now automatically
 enables the :option:`-Qwarn` switch that causes warnings
@@ -237,6 +242,33 @@
   (Proposed in http://codereview.appspot.com/53094; implemented by
   Georg Brandl.)
 
+* Conversions between floating-point numbers and strings are
+  now correctly rounded on most platforms.  These conversions occur
+  in many different places: :func:`str` on
+  floats and complex numbers; the :class:`float` and :class:`complex`
+  constructors;
+  numeric formatting; serialization and
+  deserialization of floats and complex numbers using the
+  :mod:`marshal`, :mod:`pickle`
+  and :mod:`json` modules;
+  parsing of float and imaginary literals in Python code;
+  and :class:`Decimal`-to-float conversion.
+
+  Related to this, the :func:`repr` of a floating-point number *x*
+  now returns a result based on the shortest decimal string that's
+  guaranteed to round back to *x* under correct rounding (with
+  round-half-to-even rounding mode).  Previously it gave a string
+  based on rounding x to 17 decimal digits.
+
+  The rounding library responsible for this improvement works on
+  Windows, and on Unix platforms using the gcc, icc, or suncc
+  compilers.  There may be a small number of platforms where correct
+  operation of this code cannot be guaranteed, so the code is not
+  used on such systems.
+
+  Implemented by Mark Dickinson, using David Gay's :file:`dtoa.c` library;
+  :issue:`7117`.
+
 * The :meth:`str.format` method now supports automatic numbering of the replacement
   fields.  This makes using :meth:`str.format` more closely resemble using
   ``%s`` formatting::
@@ -259,6 +291,10 @@
   alignment is applied to the whole of the resulting ``1.5+3j``
   output.  (Contributed by Eric Smith; :issue:`1588`.)
 
+  The 'F' format code now always formats its output using uppercase characters,
+  so it will now produce 'INF' and 'NAN'.
+  (Contributed by Eric Smith; :issue:`3382`.)
+
 * The :func:`int` and :func:`long` types gained a ``bit_length``
   method that returns the number of bits necessary to represent
   its argument in binary::
@@ -318,6 +354,10 @@
   supported.  (Contributed by Alexander Belchenko and Amaury Forgeot
   d'Arc; :issue:`1616979`.)
 
+* The :class:`file` object will now set the :attr:`filename` attribute
+  on the :exc:`IOError` exception when trying to open a directory
+  on POSIX platforms.  (Noted by Jan Kaliszewski; :issue:`4764`.)
+
 * Extra parentheses in function definitions are illegal in Python 3.x,
   meaning that you get a syntax error from ``def f((x)): pass``.  In
   Python3-warning mode, Python 2.7 will now warn about this odd usage.
@@ -499,10 +539,18 @@
   :meth:`reverse` method that reverses the elements of the deque in-place.
   (Added by Raymond Hettinger.)
 
+* The :mod:`copy` module's :func:`deepcopy` function will now
+  correctly copy bound instance methods.  (Implemented by
+  Robert Collins; :issue:`1515`.)
+
 * The :mod:`ctypes` module now always converts ``None`` to a C NULL
   pointer for arguments declared as pointers.  (Changed by Thomas
   Heller; :issue:`4606`.)
 
+* New method: the :mod:`datetime` module's :class:`timedelta` class
+  gained a :meth:`total_seconds` method that returns the number of seconds
+  in the duration.  (Contributed by Brian Quinlan; :issue:`5788`.)
+
 * New method: the :class:`Decimal` class gained a
   :meth:`from_float` class method that performs an exact conversion
   of a floating-point number to a :class:`Decimal`.
@@ -550,7 +598,7 @@
 
   The :class:`distutils.dist.DistributionMetadata` class'
   :meth:`read_pkg_file` method will read the contents of a package's
-  metadata file.  For an example of its use,
+  :file:`PKG-INFO` metadata file.  For an example of its use,
   XXX link to  file:///MacDev/svn.python.org/python-trunk/Doc/build/html/distutils/examples.html#reading-the-metadata
   (Contributed by Tarek Ziade; :issue:`7457`.)
 
@@ -667,8 +715,10 @@
   calls: :func:`getresgid` and :func:`getresuid`, which return the
   real, effective, and saved GIDs and UIDs;
   :func:`setresgid` and :func:`setresuid`, which set
-  real, effective, and saved GIDs and UIDs to new values.  (Contributed
-  by Travis H.; :issue:`6508`.)
+  real, effective, and saved GIDs and UIDs to new values;
+  :func:`initgroups`.  (GID/UID functions
+  contributed by Travis H.; :issue:`6508`.  Support for initgroups added
+  by Jean-Paul Calderone; :issue:`7333`.)
 
 * The :mod:`pydoc` module now has help for the various symbols that Python
   uses.  You can now do ``help('<<')`` or ``help('@')``, for example.
@@ -970,6 +1020,11 @@
   instruction currently executing, and then look up the line number
   corresponding to that address.  (Added by Jeffrey Yasskin.)
 
+* New function: :cfunc:`PyLong_AsLongAndOverflow` approximates a Python long
+  integer as a C :ctype:`long`.  If the number is too large to fit into
+  a :ctype:`long`, an *overflow* flag is set and returned to the caller.
+  (Contributed by Case Van Horsen; :issue:`7528`.)
+
 * New macros: the Python header files now define the following macros:
   :cmacro:`Py_ISALNUM`,
   :cmacro:`Py_ISALPHA`,
@@ -988,6 +1043,12 @@
 
   .. XXX these macros don't seem to be described in the c-api docs.
 
+* New format codes: the :cfunc:`PyFormat_FromString`,
+  :cfunc:`PyFormat_FromStringV`, and :cfunc:`PyErr_Format` now
+  accepts ``%lld`` and ``%llu`` format codes for displaying values of
+  C's :ctype:`long long` types.
+  (Contributed by Mark Dickinson; :issue:`7228`.)
+
 * The complicated interaction between threads and process forking has
   been changed.  Previously, the child process created by
   :func:`os.fork` might fail because the child is created with only a
@@ -1047,6 +1108,10 @@
 * The :func:`os.listdir` function now correctly fails
   for an empty path.  (Fixed by Hirokazu Yamamoto; :issue:`5913`.)
 
+* The :mod:`mimelib` module will now read the MIME database from
+  the Windows registry when initializing.
+  (Patch by Gabriel Genellina; :issue:`4969`.)
+
 .. ======================================================================
 
 Port-Specific Changes: Mac OS X
