diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index f9fd136..fa7febc 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt*	For Vim version 8.2.  Last change: 2020 Aug 01
+*vim9.txt*	For Vim version 8.2.  Last change: 2020 Aug 15
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -70,10 +70,10 @@
 	let count = 0  # number of occurrences
 
 The reason is that a double quote can also be the start of a string. In many
-places, especially halfway an expression with a line break, it's hard to tell
-what the meaning is, since both a string and a comment can be followed by
-arbitrary text.  To avoid confusion only # comments are recognized.  This is
-the same as in shell scripts and Python programs.
+places, especially halfway through an expression with a line break, it's hard
+to tell what the meaning is, since both a string and a comment can be followed
+by arbitrary text.  To avoid confusion only # comments are recognized.  This
+is the same as in shell scripts and Python programs.
 
 In Vi # is a command to list text with numbers.  In Vim9 script you can use
 `:number` for that. >
@@ -104,11 +104,11 @@
 be used, type checking will then be done at runtime, like with legacy
 functions.
 
-Arguments are accessed by name, without "a:".  There is no "a:" dictionary or
-"a:000" list.  Just like any other language.
+Arguments are accessed by name, without "a:", just like any other language.
+There is no "a:" dictionary or "a:000" list.
 
 Variable arguments are defined as the last argument, with a name and have a
-list type, similar to Typescript.  For example, a list of numbers: >
+list type, similar to TypeScript.  For example, a list of numbers: >
   	def MyFunc(...itemlist: list<number>)
 	   for item in itemlist
 	     ...
@@ -142,7 +142,7 @@
 found in the script, either defined there or imported.  Global functions and
 variables could be defined anywhere (good luck finding out where!).
 
-Global functions can be still be defined and deleted at nearly any time.  In
+Global functions can still be defined and deleted at nearly any time.  In
 Vim9 script script-local functions are defined once when the script is sourced
 and cannot be deleted or replaced.
 
@@ -232,7 +232,7 @@
 	'foobar'->Process()
 	('foobar')->Process()
 
-In rare case there is ambiguity between a function name and an Ex command,
+In the rare case there is ambiguity between a function name and an Ex command,
 prepend ":" to make clear you want to use the Ex command.  For example, there
 is both the `:substitute` command and the `substitute()` function.  When the
 line starts with `substitute(` this will use the function. Prepend a colon to
@@ -240,8 +240,8 @@
 	:substitute(pattern (replacement (
 
 Note that while variables need to be defined before they can be used,
-functions can be called before being defined.  This is required to be able
-have cyclic dependencies between functions.  It is slightly less efficient,
+functions can be called before being defined.  This is required to allow
+for cyclic dependencies between functions.  It is slightly less efficient,
 since the function has to be looked up by name.  And a typo in the function
 name will only be found when the function is called.
 
@@ -394,7 +394,7 @@
 
 Conditions and expressions ~
 
-Conditions and expression are mostly working like they do in JavaScript.  A
+Conditions and expressions are mostly working like they do in JavaScript.  A
 difference is made where JavaScript does not work like most people expect.
 Specifically, an empty list is falsey.
 
@@ -429,13 +429,19 @@
 When using `..` for string concatenation arguments of simple types are always
 converted to string. >
 	'hello ' .. 123  == 'hello 123'
-	'hello ' .. v:true  == 'hello true'
+	'hello ' .. v:true  == 'hello v:true'
 
 Simple types are string, float, special and bool.  For other types |string()|
 can be used.
 
 In Vim9 script one can use "true" for v:true and "false" for v:false.
 
+Indexing a string with [idx] or [idx, idx] uses character indexes instead of
+byte indexes. Example: >
+	echo 'bár'[1]
+In legacy script this results in the character 0xc3 (an illegal byte), in Vim9
+script this results in the string 'á'.
+
 
 What to watch out for ~
 							*vim9-gotchas*
@@ -494,7 +500,7 @@
 THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
 
 							*:def*
-:def[!] {name}([arguments])[: {return-type}
+:def[!] {name}([arguments])[: {return-type}]
 			Define a new function by the name {name}.  The body of
 			the function follows in the next lines, until the
 			matching `:enddef`.
@@ -789,7 +795,7 @@
 
 <   This goes in .../plugin/anyname.vim.  "anyname.vim" can be freely chosen.
 
-2. In the autocommand script do the actual work.  You can import items from
+2. In the autoload script do the actual work.  You can import items from
    other files to split up functionality in appropriate pieces. >
 	vim9script
         import FilterFunc from "../import/someother.vim"
@@ -824,7 +830,7 @@
 
 The :def command ~
 
-Plugin writers have asked for a much faster Vim script.  Investigation have
+Plugin writers have asked for a much faster Vim script.  Investigations have
 shown that keeping the existing semantics of function calls make this close to
 impossible, because of the overhead involved with calling a function, setting
 up the local function scope and executing lines.  There are many details that
@@ -854,7 +860,7 @@
 given at compile time, no error handling is needed at runtime.
 
 The syntax for types is similar to Java, since it is easy to understand and
-widely used.  The type names are what was used in Vim before, with some
+widely used.  The type names are what were used in Vim before, with some
 additions such as "void" and "bool".
 
 
@@ -905,7 +911,7 @@
 	...
 	return result || 0	" returns 1
 
-Vim9 script works like JavaScript/Typescript, keep the value: >
+Vim9 script works like JavaScript/TypeScript, keep the value: >
 	let result = 44
 	...
 	return result || 0	" returns 44
@@ -922,7 +928,7 @@
 are global.  It is possible to make them script-local, but then they are not
 available in other scripts.
 
-In Vim9 script a mechanism very similar to the Javascript import and export
+In Vim9 script a mechanism very similar to the JavaScript import and export
 mechanism is supported.  It is a variant to the existing `:source` command
 that works like one would expect:
 - Instead of making everything global by default, everything is script-local,
