diff --git a/AUTHORS b/AUTHORS
index 09fb4cc85297c5c710061b6dc7c0b5172b16eb72..9b9b3355ba89d4d0338c2dead22957ec44ac4754 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -45,6 +45,7 @@ Andrea G
 Andreas Reischuck
 Andres Taylor
 Andre von Houck
+Andrew Cheng
 Andrey Fedorov
 Andrey Klyuchnikov
 Andrey Lushnikov
@@ -186,6 +187,7 @@ fbuchinger
 feizhang365
 Felipe Lalanne
 Felix Raab
+ficristo
 Filip Noetzel
 Filip Stollár
 flack
@@ -500,6 +502,7 @@ Remi Nyborg
 Richard Denton
 Richard van der Meer
 Richard Z.H. Wang
+Rishi Goomar
 Robert Crossfield
 Roberto Abdelkader Martínez Pérez
 robertop23
@@ -582,6 +585,7 @@ Todd Berman
 Tomas-A
 Tomas Varaneckas
 Tom Erik Støwer
+Tom Klancer
 Tom MacWright
 Tony Jian
 Travis Heppe
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2404815f88563ef9b5622373faafa70950fc2abc..f3eb79ff5c9aab7bb75dd97c0d90cd045d02e439 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,21 @@
+## 5.22.0 (2016-12-20)
+
+### Bug fixes
+
+[sublime bindings](http://codemirror.net/demo/sublime.html): Make `selectBetweenBrackets` work with multiple cursors.
+
+[javascript mode](http://codemirror.net/mode/javascript/): Fix issues with parsing complex TypeScript types, imports, and exports.
+
+A contentEditable editor instance with autofocus enabled no longer crashes during initializing.
+
+### New features
+
+[emacs bindings](http://codemirror.net/demo/emacs.html): Export `CodeMirror.emacs` to allow other addons to hook into Emacs-style functionality.
+
+[active-line addon](http://codemirror.net/doc/manual.html#addon_active-line): Add `nonEmpty` option.
+
+New event: [`optionChange`](http://codemirror.net/doc/manual.html#event_optionChange).
+
 ## 5.21.0 (2016-11-21)
 
 ### Bug fixes
diff --git a/doc/manual.html b/doc/manual.html
index c6745e3ce645d139ed3855d4ddac89cc9020dcca..704984fc71b207a0369f80d7d972634f0977f445 100644
--- a/doc/manual.html
+++ b/doc/manual.html
@@ -69,7 +69,7 @@
 <section class=first id=overview>
     <h2 style="position: relative">
       User manual and reference guide
-      <span style="color: #888; font-size: 1rem; position: absolute; right: 0; bottom: 0">version 5.21.1</span>
+      <span style="color: #888; font-size: 1rem; position: absolute; right: 0; bottom: 0">version 5.22.0</span>
     </h2>
 
     <p>CodeMirror is a code-editor component that can be embedded in
diff --git a/doc/releases.html b/doc/releases.html
index 5880469189776c00c0fa8bd6ae2ad535ef8f6569..2dfd1fe48283db10d58e5a31c45af88b77315e83 100644
--- a/doc/releases.html
+++ b/doc/releases.html
@@ -30,7 +30,18 @@
 
   <h2>Version 5.x</h2>
 
-  <p class="rel">21-11-2016: <a href="http://codemirror.net/codemirror-5.21.0.zip">Version 5.21.0</a>:</p>
+ <p class="rel">20-12-2016: <a href="http://codemirror.net/codemirror-5.22.0.zip">Version 5.22.0</a>:</p>
+
+ <ul class=rel-note>
+   <li><a href="http://codemirror.net/demo/sublime.html">sublime bindings</a>: Make <code>selectBetweenBrackets</code> work with multiple cursors.</li>
+   <li><a href="http://codemirror.net/mode/javascript/">javascript mode</a>: Fix issues with parsing complex TypeScript types, imports, and exports.</li>
+   <li>A contentEditable editor instance with autofocus enabled no longer crashes during initializing.</li>
+   <li><a href="http://codemirror.net/demo/emacs.html">emacs bindings</a>: Export <code>CodeMirror.emacs</code> to allow other addons to hook into Emacs-style functionality.</li>
+   <li><a href="http://codemirror.net/doc/manual.html#addon_active-line">active-line addon</a>: Add <code>nonEmpty</code> option.</li>
+   <li>New event: <a href="http://codemirror.net/doc/manual.html#event_optionChange"><code>optionChange</code></a>.</li>
+ </ul>
+
+ <p class="rel">21-11-2016: <a href="http://codemirror.net/codemirror-5.21.0.zip">Version 5.21.0</a>:</p>
 
   <ul class=rel-note>
     <li>Tapping/clicking the editor in <a href="http://codemirror.net/doc/manual.html#option_inputStyle">contentEditable mode</a> on Chrome now puts the cursor at the tapped position.</li>
diff --git a/index.html b/index.html
index 7164296018f7737b15c425cf50092a287c2b10e1..06fdc1567f2a572b024f4083e53b3cd000abf28b 100644
--- a/index.html
+++ b/index.html
@@ -96,7 +96,7 @@
       </div>
     </div>
     <div class=actionsleft>
-      Get the current version: <a href="http://codemirror.net/codemirror.zip">5.21.0</a>.<br>
+      Get the current version: <a href="http://codemirror.net/codemirror.zip">5.22.0</a>.<br>
       You can see the <a href="https://github.com/codemirror/codemirror" title="Github repository">code</a>,<br>
       read the <a href="doc/releases.html">release notes</a>,<br>
       or study the <a href="doc/manual.html">user manual</a>.
diff --git a/package.json b/package.json
index e2b97a9cd18e3f83e6d9027540ac483d7f18ea06..c007b2a87c00540878dc07a4afedcc738c0eeee5 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "codemirror",
-  "version": "5.21.1",
+  "version": "5.22.0",
   "main": "lib/codemirror.js",
   "description": "Full-featured in-browser code editor",
   "license": "MIT",
diff --git a/src/edit/main.js b/src/edit/main.js
index 64b647b5d20b8d01af144c6a6f195242b6ce6b5c..8da8f48e3abb18ad9f78697f666adf71d5802818 100644
--- a/src/edit/main.js
+++ b/src/edit/main.js
@@ -66,4 +66,4 @@ import { addLegacyProps } from "./legacy"
 
 addLegacyProps(CodeMirror)
 
-CodeMirror.version = "5.21.1"
+CodeMirror.version = "5.22.0"