diff --git a/ChangeLog b/ChangeLog
index 77dacde6990fe6855088ea3885a505878302df3e..18916f74e18e9d51620e6a3706ec55546245aa72 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,96 @@
+Changes between v2.9.1 and v2.9.2:
+----------------------------------
+
+Benjamin Mintz (1):
+      syntax: python: add 'async', 'await', and 'nonlocal' as keywords
+
+Benno Schulenberg (62):
+      bump version numbers and add a news item for the 2.9.2 release
+      display: ensure that cursor is visible when compiled with --with-slang
+      docs: mention that the source code is best viewed with a tab size of 4
+      docs: say thanks to some fairly recent translators, and rename one
+      gnulib: pull in the fix for the missing stat include
+      gnulib: update to its current upstream state
+      help: show that "Tab" will indent, just like "Sh-Tab" will unindent
+      help: swap the order of the Complete and Comment functions
+      indenting: don't exclude last line of region when region is empty
+      indenting: keep affecting last line of marked region if it was at first
+      input: allow using <Tab> and <Shift+Tab> to (un)indent selected region
+      input: make <Ctrl+Shift+Arrow> work also when using --rebindkeypad
+      input: optimize a bit for non-shortcut keys, as they are most frequent
+      options: rename 'justifytrim' to 'trimblanks', because it has morphed
+      prompt: blank the bar when a "continue?" is answered with No or ^C
+      syntaxes: remove redundant word-boundary markers
+      syntax: javascript: add some comments, and color explicit numbers too
+      syntax: javascript: add some keywords, and sort them more logically
+      syntax: javascript: color strings differently from major keywords
+      syntax: javascript: require that a comment is preceded by whitespace
+      syntax: lua: condense some regexes, tweak comments, reorder things
+      syntax: nanorc: don't color parts of valid strings as if invalid
+      syntax: python: color also the special values 'False', 'None', 'True'
+      text: allow unindenting when not all lines are indented
+      text: keep cursor at left edge when it IS there when indenting/commenting
+      text: let a Shift-selection persist when indenting and commenting
+      text: let indenting/commenting skip the last line if its x is zero
+      text: set and reset the Modified state correctly when undoing/redoing
+      tweaks: add a separate function that actually wipes the status bar
+      tweaks: avoid incrementing a variable that won't be used again later
+      tweaks: condense or rewrap a bunch of repetitious comments
+      tweaks: condense, reword, and rewrap a bunch of comments
+      tweaks: condense some debugging code, and rewrap a line
+      tweaks: convert the indentation of the NEWS file too
+      tweaks: convert the indentation to use only tabs
+      tweaks: drop some old debugging code plus a superfluous comment
+      tweaks: elide two parameters from the get_region() function
+      tweaks: elide two variables that are used just once
+      tweaks: factor out a piece of common code
+      tweaks: fix some whitespace errors, and convert alignment tabs to spaces
+      tweaks: fold some regexes into one another, for conciseness
+      tweaks: frob four comments, and rewrap two lines
+      tweaks: invert the logic of a variable, and rename it
+      tweaks: limit the resetting of "Modified" to writing a full buffer
+      tweaks: move some frequently-used keystrokes to the top of the list
+      tweaks: remove a redundant call of renumber()
+      tweaks: remove a superfluous condition
+      tweaks: remove a superfluous placing of a terminating nul byte
+      tweaks: remove some unneeded parentheses, and shorten two function calls
+      tweaks: remove two irrelevant conditions
+      tweaks: rename three variables, for more contrast and variety
+      tweaks: reshuffle a bit of common code, moving it to an existing function
+      tweaks: reshuffle another bit of code, for conciseness
+      tweaks: rewrap some lines and some comments, and trim two others
+      tweaks: slightly rename four functions, for aptness and variety
+      tweaks: strip some debugging stuff, and condense a bit of code
+      tweaks: trim another placing of a terminating nul byte
+      tweaks: use for git the more faithful "less -x1,5" suggested by Brand
+      tweaks: use spaces for alignment also in the THANKS file
+      wrapping: delete trailing blanks upon hardwrapping, when requested
+      wrapping: keep prepending to the same next line as long as possible
+      wrapping: we're still on the same line if the next line has not changed
+
+David Lawrence Ramsey (3):
+      input: support backtab when Slang and/or --rebindkeypad is used
+      tweaks: use printf's z modifier for (s)size_t, instead of casting
+      undo: when adding text adds a magicline, an undo should remove both
+
+Liu Hao (1):
+      syntax: c: increase the color contrast of reminders like FIXME
+
+Michael Francis (1):
+      syntax: php: function and variable names can contain uppercase and digits
+
+Mike Frysinger (1):
+      syntax: javascript: add newer keywords and string syntax
+
+Tom Levy (6):
+      syntax: go: fix word boundary before dot in number literal
+      syntax: go: sign of exponent in number literal is optional
+      syntax: lua: add new and missing standard library functions
+      syntax: lua: correct the word boundaries on standard library functions
+      syntax: lua: require at least one digit for hexadecimal numbers
+      syntax: lua: support fractional part and exponent for decimal and hex
+
+
 Changes between v2.9.0 and v2.9.1:
 ----------------------------------
 
diff --git a/IMPROVEMENTS b/IMPROVEMENTS
index 82b4f6debc6484658e99dd19c89e020e9ff941f7..e21a0171d3b9aeaabcfbdf706ef0bf309c601a77 100644
--- a/IMPROVEMENTS
+++ b/IMPROVEMENTS
@@ -2,6 +2,8 @@ Improvements in GNU nano
 ========================
 
 Since 2.9.0:
+  - <Tab> and <Shift+Tab> can be used to indent/unindent a marked region.
+  - Can snip trailing whitespace while typing, with 'set trimblanks'.
   - The ability to record and replay a series of keystrokes (a macro).
   - Assigned functions to ^S (save file) and ^Q (start backward search).
   - Indenting and unindenting have been integrated into the undo system.
diff --git a/NEWS b/NEWS
index 46bdaa1b78e78516b53af219952ac79ec93448f2..192a19a4a823d3f5e7012095edb18784daaf8593 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,19 @@
+2018.01.02 - GNU nano 2.9.2 "Pussy Riot" correctly displays the Modified
+				state when undoing/redoing (also when the file was saved
+				somewhere midway), improves the undoing of an automatic
+				linefeed at EOF, fixes a build issue on the BSDs, shows
+				the cursor again when compiled with --withslang, renames
+				the option 'justifytrim' to 'trimblanks' because it will
+				now snip trailing whitespace also while you are typing
+				(and hard-wrapping is enabled), continues pushing words
+				to the next line much longer (when hard-wrapping), makes
+				<Tab> and <Shift+Tab> indent and unindent a marked region,
+				allows unindenting when not all lines are indented, lets a
+				region marked with Shift persist when indenting/unindenting
+				or commenting/uncommenting it, and in those cases excludes
+				the last line of the region when it is not visibly marked
+				(which makes for a more intuitive behavior).
+
 2017.11.27 - GNU nano 2.9.1 "Damyatta" fixes a bug where, when the mark
 				is on, ^S would overwrite the file with just the marked
 				region.  This release further clears the "Modified" flag
diff --git a/configure.ac b/configure.ac
index ba8a99e2781d013f32fca28ec2b5ad1186d679f1..c2763e54fd0e20be48f2f4fbd55f5f47d52bf3dd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,7 +16,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see http://www.gnu.org/licenses/.
 
-AC_INIT([GNU nano], [2.9.1], [nano-devel@gnu.org], [nano])
+AC_INIT([GNU nano], [2.9.2], [nano-devel@gnu.org], [nano])
 AC_CONFIG_SRCDIR([src/nano.c])
 AC_CANONICAL_HOST
 AM_INIT_AUTOMAKE([1.14])
diff --git a/doc/faq.html b/doc/faq.html
index 159951a5ae055e6e5230fee65d7526771d232d67..32cba9aad395893a228318601016e7a5810cc8f8 100644
--- a/doc/faq.html
+++ b/doc/faq.html
@@ -83,7 +83,7 @@
 <h2><a name="1.3"></a>1.3. Why the name change from TIP?</h2>
 <blockquote><p>On January 10, 2000, TIP was officially renamed to nano because of a namespace conflict with another program called 'tip'. The original 'tip' program &quot;establishes a full duplex terminal connection to a remote host&quot;, and was included with many older Unix systems (and newer ones like Solaris). The conflict was not noticed at first because there is no 'tip' utility included with most GNU/Linux distributions (where nano was developed).</p></blockquote>
 <h2><a name="1.4"></a>1.4. What is the current version of nano?</h2>
-<blockquote><p>The current version of nano <i>should</i> be <b>2.9.1</b>.  Of course, you should always check the <a href="https://nano-editor.org/">nano homepage</a> to see what the latest and greatest version is.</p></blockquote>
+<blockquote><p>The current version of nano <i>should</i> be <b>2.9.2</b>.  Of course, you should always check the <a href="https://nano-editor.org/">nano homepage</a> to see what the latest and greatest version is.</p></blockquote>
 <h2><a name="1.5"></a>1.5. I want to read the man page without having to download the program!</h2>
 <blockquote><p>Jeez, demanding, aren't we? Okay, look <a href="https://nano-editor.org/dist/latest/nano.1.html">here</a>.</p></blockquote>
 <hr width="100%">
diff --git a/doc/nano.1 b/doc/nano.1
index fbfc4453f62bdaa86861c53b7e1fad1789c42830..96e9cdf0600d906ef046a03b47a0c70a9eac27be 100644
--- a/doc/nano.1
+++ b/doc/nano.1
@@ -16,7 +16,7 @@
 .\"   Documentation License along with this program.  If not, see
 .\"   <http://www.gnu.org/licenses/>.
 .\"
-.TH NANO 1 "version 2.9.1" "November 2017"
+.TH NANO 1 "version 2.9.2" "January 2018"
 
 .SH NAME
 nano \- Nano's ANOther editor, an enhanced free Pico clone
diff --git a/doc/nano.texi b/doc/nano.texi
index ac68b4b2c5f1251c854c27901f41307682ebefb8..8a44dfaf99a345008a94c97c5c89bebdc6887adf 100644
--- a/doc/nano.texi
+++ b/doc/nano.texi
@@ -8,8 +8,8 @@
 
 @smallbook
 @set EDITION 0.5
-@set VERSION 2.9.1
-@set UPDATED November 2017
+@set VERSION 2.9.2
+@set UPDATED January 2018
 
 @dircategory Editors
 @direntry
@@ -23,7 +23,7 @@
 @titlepage
 @title GNU @command{nano}
 @subtitle a small and friendly text editor
-@subtitle version 2.9.1
+@subtitle version 2.9.2
 
 @author Chris Allegretta
 @page
@@ -63,7 +63,7 @@ e-mail: @email{chrisa@@asty.org}@*
 @node Top
 @top
 
-This manual documents the GNU @command{nano} editor, version 2.9.1.
+This manual documents the GNU @command{nano} editor, version 2.9.2.
 
 @menu
 * Introduction::
diff --git a/doc/nanorc.5 b/doc/nanorc.5
index 1b05a28775cfbce5f9370a030cbfa3d6e04d0077..a1a5cb32626f3176f98dca1b37f63311ea9ca252 100644
--- a/doc/nanorc.5
+++ b/doc/nanorc.5
@@ -16,7 +16,7 @@
 .\"   Documentation License along with this program.  If not, see
 .\"   <http://www.gnu.org/licenses/>.
 .\"
-.TH NANORC 5 "version 2.9.1" "November 2017"
+.TH NANORC 5 "version 2.9.2" "January 2018"
 
 .SH NAME
 nanorc \- GNU nano's configuration file
diff --git a/doc/rnano.1 b/doc/rnano.1
index 40cbec64fed48c76121d2c91e9b5a77d9aef8c2b..41b62a3c228be065cac2a1f71befd8682efc7bc5 100644
--- a/doc/rnano.1
+++ b/doc/rnano.1
@@ -16,7 +16,7 @@
 .\"   Documentation License along with this program.  If not, see
 .\"   <http://www.gnu.org/licenses/>.
 .\"
-.TH RNANO 1 "version 2.9.1" "November 2017"
+.TH RNANO 1 "version 2.9.2" "January 2018"
 
 .SH NAME
 rnano \- a restricted nano