diff --git a/CHANGES.html b/CHANGES.html
index 9bf27be..244da5a 100644
--- a/CHANGES.html
+++ b/CHANGES.html
@@ -348,6 +348,12 @@ ul.auto-toc {
As many people have been using D:YAML from git master since the 0.4 release, each change
is prefixed by the year the change was introduced.
diff --git a/CHANGES.rst b/CHANGES.rst
index 4c3567c..9512325 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -9,6 +9,8 @@ Breaking changes
As many people have been using D:YAML from git master since the 0.4 release, each change
is prefixed by the year the change was introduced.
+- ``2014`` The ``cdc.d`` build script has been removed; dub is now the only 'official'
+ way to build D:YAML.
- ``2014`` Broke compatibility with all DMD versions before 2.066
- ``2014`` ``Loader`` API depending on ``std.stream`` is now deprecated and will be
removed in the next release.
@@ -50,18 +52,31 @@ Other improvements
input, and UTF-32 inputs can be encoded into UTF-8 in-place without allocating.
UTF-16 inputs still need an allocation. This also gets rid of all dchar[]->char[]
conversions which were a significant source of GC allocations.
+- Various optimizations in ``Reader``/``Scanner``, especially for mostly-ASCII files
+ containing plain scalars (most common YAML files). Measured speedup of ~80% when
+ parsing mostly-ASCII
+ files, slowdown of ~12% for mostly non-ASCII files (all tested files were UTF-8).
- Less GC usage during YAML node construction.
-- The ``Scanner`` subsystems is now mostly ``@nogc``; it never allocates memory for
- token values, using slices into the input buffer instead.
+- ``Scanner`` is now mostly ``@nogc``; it never allocates memory for token values, using
+ slices into the input buffer instead.
- Custom, ``@nogc`` UTF decoding/encoding code based on ``std.utf`` to enable more use
of ``@nogc`` in D:YAML internals and to improve performance.
-- Replaced ``std.stream.EndianStream`` with custom endian-fixing code.
+- Less memory allocations during scanning in general, including manual allocations.
+- Default ``Constructor``/``Resolver`` are now only constructed if the user doesn't
+ specify their own.
+- Replaced ``std.stream.EndianStream`` with
+ `tinyendian `_.
- D:YAML is now a DUB package.
- Removed static data structures such as default Constructor and Resolver.
- Compile-time checks for size of data structures that should be small.
- Better error messages.
- Various refactoring changes, using more 'modern' D features, better tests.
-- Updated documentation, examples.
+- Updated documentation, examples to reflect changes in 0.5.
+- Updated the ``yaml_bench`` example/tool with options to keep the input file in memory
+ instead of reloading it for repeated parses, and to only benchmark scanning time
+ instead of the entire parser.
+- The ``yaml_gen`` example/tool can now generate strings from user-specified alphabets
+ which may contain non-ASCII characters.
^^^^^^^^