diff --git a/changelog.c.txt b/changelog.c.txt
@@ -1,3 +1,35 @@
+[0.17]
+
+ * Stripped out all JavaScript related code and documentation, moving
+ it to a separate repository (<https://github.com/jgm/commonmark.js>).
+ * Improved Makefile targets, so that `cmake` is run again only when
+ necessary (Nick Wellnhofer).
+ * Added `INSTALL_PREFIX` to the Makefile, allowing installation to a
+ location other than `/usr/local` without invoking `cmake`
+ manually (Nick Wellnhofer).
+ * `make test` now guarantees that the project will
+ be rebuilt before tests are run (Nick Wellnhofer).
+ * Prohibited overriding of some Makefile variables (Nick Wellnhofer).
+ * Provide version number and string, both as macros
+ (`CMARK_VERSION`, `CMARK_VERSION_STRING`) and as symbols
+ (`cmark_version`, `cmark_version_string`) (Nick Wellnhofer). All of
+ these come from `cmark_version.h`, which is constructed from a
+ template `cmark_version.h.in` and data in `CMakeLists.txt`.
+ * Avoid calling `free` on null pointer.
+ * Added an accessor for an iterator's root node (`cmark_iter_get_root`).
+ * Added user data field for nodes (Nick Wellnhofer). This is
+ intended mainly for use in bindings for dynamic languages, where
+ it could store a pointer to a target language object (#287). But
+ it can be used for anything.
+ * Man renderer: properly escape multiline strings.
+ * Added assertion to raise error if finalize is called on a closed block.
+ * Implemented the new spec rule for emphasis and strong emphasis with `_`.
+ * Moved the check for fence-close with the other checks for end-of-block.
+ * Fixed a bug with loose list detection with items containings
+ fenced code blocks (#285).
+ * Removed recursive algorithm in `ends_with_blank_line` (#286).
+ * Minor code reformatting: renamed parameters.
+
[0.16]
* Added xml renderer (XML representation of the CommonMark AST,