diff --git a/AUTHORS b/AUTHORS
index 260c13a86449b6e3862427c6a7c3ed835789879b..737acedabaca0f4b793cce97001379ea6a7de4f0 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -2,6 +2,7 @@ List of CodeMirror contributors. Updated before every release.
 
 4r2r
 Aaron Brooks
+Abe Fettig
 Adam King
 adanlobato
 Adán Lobato
@@ -10,16 +11,20 @@ Ahmad Amireh
 Ahmad M. Zawawi
 ahoward
 Akeksandr Motsjonov
+Alberto Pose
 Albert Xing
 Alexander Pavlov
 Alexander Schepanovski
+Alexander Solovyov
 alexey-k
 Alex Piggott
 Amy
 Ananya Sen
 AndersMad
+Anderson Mesquita
 Andre von Houck
 Andrey Lushnikov
+Andy Joslin
 Andy Kimball
 Andy Li
 angelozerr
@@ -27,16 +32,20 @@ angelo.zerr@gmail.com
 Ankit Ahuja
 Ansel Santosa
 Anthony Grimes
+Anton Kovalyov
 areos
+AtomicPages LLC
 Atul Bhouraskar
 Aurelian Oancea
 Bastian Müller
 benbro
+Beni Cherniavsky-Paskin
 Benjamin DeCoste
 Ben Keen
 boomyjee
 borawjm
 Brandon Frohs
+Brandon Wamboldt
 Brett Zamir
 Brian Sletten
 Bruce Mitchener
@@ -54,9 +63,11 @@ Dan Heberden
 Daniel, Dao Quang Minh
 Daniel Faust
 Daniel Huigens
+Daniel KJ
 Daniel Neel
 Daniel Parnell
 Danny Yoo
+Darius Roberts
 David Mignot
 David Pathakjee
 deebugger
@@ -68,10 +79,13 @@ Drew Hintz
 Drew Khoury
 Dror BG
 duralog
+eborden
 edsharp
 ekhaled
+Enam Mijbah Noor
 Eric Allam
 eustas
+Fabio Zendhi Nagao
 Fauntleroy
 fbuchinger
 feizhang365
@@ -80,6 +94,7 @@ Felix Raab
 Filip Noetzel
 flack
 ForbesLindesay
+Forbes Lindesay
 Ford_Lawnmower
 Gabriel Nahmias
 galambalazs
@@ -94,12 +109,15 @@ Guillaume Massé
 Hans Engel
 Hardest
 Hasan Karahan
+hitsthings
 Hocdoc
 Ian Beck
+Ian Dickinson
 Ian Wehrman
 Ian Wetherbee
 Ice White
 ICHIKAWA, Yuji
+ilvalle
 Ingo Richter
 Irakli Gozalishvili
 Ivan Kurnosov
@@ -111,6 +129,7 @@ Jamie Hill
 Jan Jongboom
 jankeromnes
 Jan Keromnes
+Jan Odvarko
 Jan T. Sott
 Jason
 Jason Grout
@@ -122,16 +141,21 @@ jeffkenton
 Jeff Pickhardt
 jem (graphite)
 Jochen Berger
+Johan Ask
 John Connor
 John Lees-Miller
 John Snelson
+John Van Der Loo
 jongalloway
+Jon Malmaud
 Joost-Wim Boekesteijn
 Joseph Pecoraro
 Joshua Newman
 jots
+jsoojeon
 Juan Benavides Romero
 Jucovschi Constantin
+Juho Vuori
 jwallers@gmail.com
 kaniga
 Ken Newman
@@ -145,11 +169,13 @@ koops
 ks-ifware
 kubelsmieci
 Lanny
+Laszlo Vidacs
 leaf corcoran
 Leonya Khachaturov
 Liam Newman
 LM
 Lorenzo Stoakes
+Luciano Longo
 lynschinzer
 Maksim Lin
 Maksym Taran
@@ -158,8 +184,10 @@ Marco Aurélio
 Marijn Haverbeke
 Mario Pietsch
 Mark Lentczner
+Marko Bonaci
 Martin Balek
 Martín Gaitán
+Martin Hasoň
 Mason Malone
 Mateusz Paprocki
 mats cronqvist
@@ -169,6 +197,7 @@ Matt McDonald
 Matt Pass
 Matt Sacks
 Maximilian Hils
+Maxim Kraev
 Max Kirsch
 mbarkhau
 Metatheos
@@ -183,7 +212,9 @@ Mike Diaz
 Mike Ivanov
 Mike Kadin
 MinRK
+Miraculix87
 misfo
+mloginov
 mps
 Narciso Jaramillo
 Nathan Williams
@@ -192,6 +223,7 @@ nguillaumin
 Niels van Groningen
 Nikita Beloglazov
 Nikita Vasilyev
+Nikolay Kostov
 nlwillia
 pablo
 Page
@@ -199,6 +231,7 @@ Patrick Strawderman
 Paul Garvin
 Paul Ivanov
 Pavel Feldman
+Pavel Strashkin
 Paweł Bartkiewicz
 peteguhl
 peterkroon
@@ -219,16 +252,22 @@ Sascha Peilicke
 satchmorun
 sathyamoorthi
 SCLINIC\jdecker
+Sebastian Zaha
 shaund
 shaun gilchrist
+Shawn A
+Shiv Deepak
 Shmuel Englard
+soliton4
 sonson
 spastorelli
+Stanislav Oaserele
 Stas Kobzar
 Stefan Borsje
 Steffen Beyer
 Steve O'Hara
 stoskov
+Taha Jahangir
 Tarmil
 tfjgeorge
 Thaddee Tyl
@@ -244,12 +283,18 @@ Tomas Varaneckas
 Tom Erik Støwer
 Tom MacWright
 Tony Jian
+Travis Heppe
 Vestimir Markov
 vf
 Volker Mische
+wenli
+Wesley Wiser
 William Jamieson
 Wojtek Ptak
 Xavier Mendez
+YNH Webdev
 Yunchi Luo
 Yuvi Panda
 Zachary Dremann
+zziuni
+魏鹏刚
diff --git a/doc/compress.html b/doc/compress.html
index beac099370935d17b5c73e198f9bc419133febea..c2ba8f70217d2720dfff511075478e716d98527d 100644
--- a/doc/compress.html
+++ b/doc/compress.html
@@ -33,6 +33,7 @@
       <input type="hidden" id="download" name="download" value="codemirror-compressed.js"/>
       <p>Version: <select id="version" onchange="setVersion(this);" style="padding: 1px;">
         <option value="http://codemirror.net/">HEAD</option>
+        <option value="http://marijnhaverbeke.nl/git/codemirror?a=blob_plain;hb=3.21.0;f=">3.21</option>
         <option value="http://marijnhaverbeke.nl/git/codemirror?a=blob_plain;hb=3.20.0;f=">3.20</option>
         <option value="http://marijnhaverbeke.nl/git/codemirror?a=blob_plain;hb=3.19.0;f=">3.19</option>
         <option value="http://marijnhaverbeke.nl/git/codemirror?a=blob_plain;hb=3.18.0;f=">3.18</option>
diff --git a/doc/releases.html b/doc/releases.html
index e6d7ddce35962793c981132a70c8aebabc09444d..f9b2dcc814c9079fd9f6cf2df5cae8658e526ad1 100644
--- a/doc/releases.html
+++ b/doc/releases.html
@@ -28,6 +28,19 @@
 
   <h2>Version 3.x</h2>
 
+  <p class="rel">21-11-2013: <a href="http://codemirror.net/codemirror-3.21.zip">Version 3.21</a>:</p>
+
+  <ul class="rel-note">
+    <li>Auto-indenting a block will no longer add trailing whitespace to blank lines.</a>
+    <li>Marking text has a new option <a href="manual.html#markText"><code>clearWhenEmpty</code></a> to control auto-removal.</li>
+    <li>Several bugfixes in the handling of bidirectional text.</li>
+    <li>The <a href="../mode/xml/index.html">XML</a> and <a href="../mode/css/index.html">CSS</a> modes were largely rewritten. <a href="../mode/css/less.html">LESS</a> support was added to the CSS mode.</li>
+    <li>The OCaml mode was moved to an <a href="../mode/mllike/index.html">mllike</a> mode, F# support added.</li>
+    <li>Make it possible to fetch multiple applicable helper values with <a href="manual.html#getHelpers"><code>getHelpers</code></a>, and to register helpers matched on predicates with <a href="manual.html#registerGlobalHelper"><code>registerGlobalHelper</code></a>.</li>
+    <li>New theme <a href="../demo/theme.html?pastel-on-dark">pastel-on-dark</a>.</li>
+    <li>Better ECMAScript 6 support in <a href="../mode/javascript/index.html">JavaScript</a> mode.</li>
+  </ul>
+
   <p class="rel">21-11-2013: <a href="http://codemirror.net/codemirror-3.20.zip">Version 3.20</a>:</p>
 
   <ul class="rel-note">
diff --git a/index.html b/index.html
index 914bb7867de2e6f2d8cff660aebc7f35e62f0d3f..7097608d83bb5ad47da0bb48362dde9261ceb6c5 100644
--- a/index.html
+++ b/index.html
@@ -84,7 +84,7 @@
   </script>
   <div style="position: relative; margin: 1em 0;">
     <a class="bigbutton left" href="http://codemirror.net/codemirror.zip">DOWNLOAD LATEST RELEASE</a>
-    <div><strong>version 3.20</strong> (<a href="doc/releases.html">Release notes</a>)</div>
+    <div><strong>version 3.21</strong> (<a href="doc/releases.html">Release notes</a>)</div>
     <div>or use the <a href="doc/compress.html">minification helper</a></div>
     <div style="position: absolute; top: 0; right: 0; text-align: right">
       <span class="bigbutton right" onclick="document.getElementById('paypal').submit();">DONATE WITH PAYPAL</span>
diff --git a/lib/codemirror.js b/lib/codemirror.js
index 210806aace5b022cbf40d4a48cd6c3e2f1cbbf5e..23ca5355b9083ba03a76d961d08e7ae38d798ba3 100644
--- a/lib/codemirror.js
+++ b/lib/codemirror.js
@@ -6041,7 +6041,7 @@ window.CodeMirror = (function() {
 
   // THE END
 
-  CodeMirror.version = "3.20.1";
+  CodeMirror.version = "3.21.0";
 
   return CodeMirror;
 })();
diff --git a/package.json b/package.json
index 6e3cfde467c8349db67435b00880352c53095bb0..326b95890be3eca1f2bc60fc943180e98a623c3a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
     "name": "codemirror",
-    "version":"3.20.1",
+    "version":"3.21.0",
     "main": "lib/codemirror.js",
     "description": "In-browser code editing made bearable",
     "licenses": [{"type": "MIT",