diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index c93da54..dc68def 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -2872,6 +2872,10 @@
 			/home/user/vim/vim/src
 <		If {mods} is empty or an unsupported modifier is used then
 		{fname} is returned.
+		When {fname} is empty then with {mods} ":h" returns ".", so
+		that `:cd` can be used with it.  This is different from
+		expand('%:h') without a buffer name, which returns an empty
+		string.
 		Note: Environment variables don't work in {fname}, use
 		|expand()| first then.
 
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index 2ac98b1..6904091 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -697,7 +697,8 @@
 			line-input editing commands (<Del> or <BS> to erase,
 			CTRL-U to kill the whole line).
 			Vim will enter this mode by default if it's invoked as
-			"ex" on the command-line.
+			"ex" on the command-line or the |-e| command line
+			argument was used.
 			Use the ":vi" command |:visual| to exit "Ex" mode.
 			Note: In older versions of Vim "Q" formatted text,
 			that is now done with |gq|.  But if you use the
@@ -708,7 +709,7 @@
 gQ			Switch to "Ex" mode like with "Q", but really behave
 			like typing ":" commands after another.  All command
 			line editing, completion etc. is available.
-			Use the ":vi" command |:visual| to exit "Ex" mode.
+			Use the `:vi` command (`:visual`) to exit "Ex" mode.
 
 ==============================================================================
 7. The window contents					*window-contents*
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 5efc507..e4332b8 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -374,15 +374,17 @@
 <ScriptCmd> is like <Cmd> but sets the context to the script the mapping was
 defined in, for the duration of the command execution.  This is especially
 useful for |Vim9| script.  It also works to access an import, which is useful
-in a plugin using an autoload script: >
+in a plugin using a, possibly autoloaded, script: >
 	vim9script
 	import autoload 'implementation.vim' as impl
 	nnoremap <F4> <ScriptCmd>impl.DoTheWork()<CR>
-
+<
 No matter where <F4> is typed, the "impl" import will be found in the script
-context of where the mapping was defined.  And since it's an autoload import,
-the "implementation.vim" script will only be loaded once <F4> is typed, not
-when the mapping is defined.
+context of where the mapping was defined.  When it's an autoload import, as in
+the example, the "implementation.vim" script will only be loaded once <F4> is
+typed, not when the mapping is defined.
+
+Without <ScriptCmd> using "s:impl" would result in "E121: Undefined variable".
 
 Note:
 - Because <Cmd> and <ScriptCmd> avoid mode-changes it does not trigger
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index cef9bd5..cd9d7bd 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1677,7 +1677,7 @@
 			feature is included}
 	This option is a list of comma-separated names.
 	Note: if one of the items is "exclude:", then you can't add an item
-	after that.  Therefore do append an item with += but use ^= to
+	after that.  Therefore do not append an item with += but use ^= to
 	prepend, e.g.: >
 		set clipboard^=unnamed
 <	These names are recognized:
diff --git a/runtime/doc/tags b/runtime/doc/tags
index c08a834..ad35a71 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -7881,6 +7881,7 @@
 if_tcl.txt	if_tcl.txt	/*if_tcl.txt*
 ignore-errors	eval.txt	/*ignore-errors*
 ignore-timestamp	editing.txt	/*ignore-timestamp*
+import-legacy	vim9.txt	/*import-legacy*
 improved-autocmds-5.4	version5.txt	/*improved-autocmds-5.4*
 improved-quickfix	version5.txt	/*improved-quickfix*
 improved-sessions	version5.txt	/*improved-sessions*
@@ -8070,6 +8071,7 @@
 lcs-tab	options.txt	/*lcs-tab*
 lcs-trail	options.txt	/*lcs-trail*
 left-right-motions	motion.txt	/*left-right-motions*
+legacy-import	vim9.txt	/*legacy-import*
 len()	builtin.txt	/*len()*
 less	various.txt	/*less*
 letter	print.txt	/*letter*
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index c4199c2..35cc02b 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -633,10 +633,13 @@
 				*termcap-cursor-shape* *termcap-cursor-color*
 When Vim enters Insert mode the 't_SI' escape sequence is sent.  When Vim
 enters Replace mode the 't_SR' escape sequence is sent if it is set, otherwise
-'t_SI' is sent.  When leaving Insert mode or Replace mode 't_EI' is used. This
-can be used to change the shape or color of the cursor in Insert or Replace
-mode. These are not standard termcap/terminfo entries, you need to set them
-yourself.
+'t_SI' is sent.  When leaving Insert mode or Replace mode 't_EI' is used.
+Note: When 't_EI' is not set then 't_SI' and 't_SR' will not be sent.  And
+when 't_SI' or 't_SR' is not set then 't_EI' is sent only once.
+
+This can be used to change the shape or color of the cursor in Insert or
+Replace mode. These are not standard termcap/terminfo entries, you need to set
+them yourself.
 Example for an xterm, this changes the color of the cursor: >
     if &term =~ "xterm"
 	let &t_SI = "\<Esc>]12;purple\x7"
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 736340a..33bf844 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -68,6 +68,12 @@
 - Implement as part of an expression: ++expr, --expr, expr++, expr--.
 
 Update list of features to vote on:
+- Remove Athena item (won't happen)
+- Remove "add open mode" (won't happen)
+- Remove "editing of a hidden buffer" (done)
+- Change "add IDE features" to "improve terminal debugger"
+- Change "diff/merge capability for CVS" to "CVS and git"
+- Remove "pre-compile them" from "improve the performance of Vim scripts"
 - multiple cursors
 - built-in LSP support
 - virtual text, using text properties
@@ -117,8 +123,6 @@
   if the priority is above a certain value?  (#7392)
   Combining text property with 'cursorline' does not always work (Billie
   Cleek, #5533)
-- "C" works OK.  "dd" fails to delete text property in a buffer with a single
-  line.
 - Add text property that shifts text to make room for annotation (e.g.
   variable type).  Like the opposite of conceal.  Requires fixing the cursor
   positioning and mouse clicks as with conceal mode.
@@ -200,9 +204,6 @@
 Patches considered for including:
 - Add "-n" option to xxd. #10599  needs a test
 - allow for nesting of timeout, sketch in #10595
-- Patch to implement the vimtutor with a plugin: #6414
-  Was originally written by Felipe Morales.
-- Patch to make fillchars global-local. (#5206)
 
 Autoconf: must use autoconf 2.69, later version generates lots of warnings
 - try using autoconf 2.71 and fix all "obsolete" warnings
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index 852cdb9..4b54f18 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -145,6 +145,17 @@
 and produces an error where this might be confusing.  #{{ or #{{{ are OK,
 these can be used to start a fold.
 
+When starting to read a script file Vim doesn't know it is |Vim9| script until
+the `vim9script` command is found.  Until that point you would need to use
+legacy comments: >
+	" legacy comment
+	vim9script
+	# Vim9 comment
+
+That looks ugly, better put `vim9script` in the very first line: >
+	vim9script
+	# Vim9 comment
+
 In legacy Vim script # is also used for the alternate file name.  In Vim9
 script you need to use %% instead.  Instead of ## use %%% (stands for all
 arguments).
@@ -1687,21 +1698,34 @@
 Import ~
 					*:import* *:imp* *E1094* *E1047* *E1262*
 					*E1048* *E1049* *E1053* *E1071* *E1236*
-The exported items can be imported in another Vim9 script: >
+The exported items can be imported in another script. The import syntax has
+two forms. The simple form: >
+	import {filename}
+<
+Where {filename} is an expression that must evaluate to a string.  In this
+form the filename should end in ".vim" and the portion before ".vim" will
+become the script local name of the namespace. For example: >
 	import "myscript.vim"
-
-This makes each item available as "myscript.item".
+<
+This makes each exported item in "myscript.vim" available as "myscript.item".
 						*:import-as* *E1257* *E1261*
-In case the name is long or ambiguous, another name can be specified: >
-	import "thatscript.vim" as that
+In case the name is long or ambiguous, this form can be used to specify
+another name: >
+	import {longfilename} as {name}
+<
+In this form {name} becomes a specific script local name for the imported
+namespace.  Therefore {name} must consist of letters, digits and '_', like
+|internal-variables|.  The {longfilename} expression must evaluate to any
+filename.  For example: >
+	import "thatscript.vim.v2" as that
 <						*E1060* *E1258* *E1259* *E1260*
-Then you can use "that.EXPORTED_CONST", "that.someValue", etc.  You are free
-to choose the name "that".  Use something that will be recognized as referring
-to the imported script.  Avoid command names, command modifiers and builtin
-function names, because the name will shadow them.
-If the name starts with a capital letter it can also shadow global user
-commands and functions.  Also, you cannot use the name for something else in
-the script, such as a function or variable name.
+Then you can use "that.item", etc.  You are free to choose the name "that".
+Use something that will be recognized as referring to the imported script.
+Avoid command names, command modifiers and builtin function names, because the
+name will shadow them.  Better not start the name starts with a capital
+letter, since it can then also shadow global user commands and functions.
+Also, you cannot use the name for something else in the script, such as a
+function or variable name.
 
 In case the dot in the name is undesired, a local reference can be made for a
 function: >
@@ -1714,15 +1738,6 @@
 when changing the variable the copy will change, not the original variable.
 You will need to use the full name, with the dot.
 
-The full syntax of the command is:
-	import {filename} [as {name}]
-Where {filename} is an expression that must evaluate to a string.  Without the
-"as {name}" part it must end in ".vim".  {name} must consist of letters,
-digits and '_', like |internal-variables|.
-
-`:import` can also be used in legacy Vim script.  The imported items still
-become script-local, even when the "s:" prefix is not given.
-
 `:import` can not be used in a function.  Imported items are intended to exist
 at the script level and only imported once.
 
@@ -1752,14 +1767,38 @@
 	echo that
 		.name  # Error!
 
-To refer to a function in an imported script in a mapping, |<SID>| can be
-used: >
+When you've imported a function from one script into a vim9 script you can
+refer to the imported function in a mapping by prefixing it with |<SID>|: >
 	noremap <silent> ,a :call <SID>name.Function()<CR>
 
 When the mapping is defined "<SID>name." will be replaced with <SNR> and the
 script ID of the imported script.
 An even simpler solution is using |<ScriptCmd>|: >
 	noremap ,a <ScriptCmd>name.Function()<CR>
+
+Note that this does not work for variables, only for functions.
+
+					    *import-legacy* *legacy-import*
+`:import` can also be used in legacy Vim script.  The imported namespace still
+becomes script-local, even when the "s:" prefix is not given. For example: >
+        import "myfile.vim"
+	call s:myfile.MyFunc()
+
+And using the "as name" form: >
+	import "otherfile.vim9script" as that
+	call s:that.OtherFunc()
+
+However, the namespace cannot be resolved on it's own: >
+	import "that.vim"
+	echo s:that
+	" ERROR: E1060: Expected dot after name: s:that
+<
+This also affects the use of |<SID>| in the legacy mapping context.  Since
+|<SID>| is only a valid prefix for a function and NOT for a namespace, you
+cannot use it
+to scope a function in a script local namespace. Instead of prefixing the
+function with |<SID>| you should use|<ScriptCmd>|. For example: >
+	noremap ,a <ScriptCmd>:call s:that.OtherFunc()<CR>
 <
 							*:import-cycle*
 The `import` commands are executed when encountered.  If script A imports
