diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 8a106e1..774e782 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -7339,8 +7339,8 @@
 
 	After this option has been set successfully, Vim will source the files
 	"spell/LANG.vim" in 'runtimepath'.  "LANG" is the value of 'spelllang'
-	up to the first character that is not an ASCII letter and not a dash.
-	Also see |set-spc-auto|.
+	up to the first character that is not an ASCII letter or number and
+	not a dash.  Also see |set-spc-auto|.
 
 
 						*'spellsuggest'* *'sps'*
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 00a016a..d1875fc 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -774,8 +774,6 @@
     :let g:html_use_xhtml = 1
 <
 
- vim:tw=78:sw=4:ts=8:sts=4:ft=help:norl:ai:noet:
-
 ABEL						*abel.vim* *ft-abel-syntax*
 
 ABEL highlighting provides some user-defined options.  To enable them, assign
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 909dc77..043e6d5 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -38,7 +38,11 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-runtest: for flaky test, try more often if error message changes (5 times)
+Make ":script 40" edit the script listed with number 40.  Actually use
+":scriptnames".
+
+Download page: "A 64 bit version" link is wrong, use this one instead:
+https://github.com/vim/vim-win32-installer/releases/latest
 
 'incsearch' with :s: (#3321)
 - :s/foo  using CTRL-G moves to another line, should not happen, or use the
@@ -52,9 +56,12 @@
 Prompt buffer:
 - Add a command line history.
 - delay next prompt until plugin gives OK?
+- add prompt_addtext({buf}, {expr})	none	add text to a prompt buffer
 
 Terminal debugger:
 - Make prompt-buffer variant work better.
+- If breakpoints are deleted with "delete" in gdb the response is not parsed
+  properly and the breakpoints in Vim are not removed.
 - Add option to not open the program window.  It's not used when attaching to
   an already running program. (M. Kelly)
 - When only gdb window exists, on "quit" edit another buffer.
@@ -62,6 +69,10 @@
   after "run".  Everything else works, including communication channel.  Not
   initializing mzscheme avoid the problem, thus it's not some #ifdef.
 - Add support for lldb?  #3565
+- Could we do something similar for debugging Vim scripts?  At least see the
+  script while stepping through it.  Simple version would use an extra window.
+  More complete solution would actually run Vim in a Terminal an control it
+  with another Vim instance.
 
 Terminal emulator window:
 - GUI: When using ":set go+=!" a system() call causes the hit-enter prompt.
@@ -102,10 +113,13 @@
 Update for German spell files: https://github.com/chrisbra/vim/compare/5e021c990f8817a50d3264782a5...3b27c92f297540761ebbd92d04fb3
 (Christian Brabandt, 2018 Nov 4)
 
-Patch for comparing quickfix and location stacks. (Yegappan, 2018 Nov 15)
+Patch for nsis/README.txt and uninstal.txt (Ken Takata, 2018 Nov 17, #3614)
 
-Patch to fix visual block problem. (Tom M, tommm, 2018 Nov 14)
-Also will write a test.
+Patch to add commandline completion tests. (Dominique, #3622)
+
+Problem with Visual yank when 'linebreak' and 'showbreak' are set.
+Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018
+Nov 17)
 
 Key mapping times out when using a timer in Gvim. (Michael Henry, 2018 Sep 9,
 #3417)
@@ -114,6 +128,13 @@
 - _stat64 is not defined, need to use "struct stat" in vim.h
 - WINVER conflict, should use 0x0600 by default?
 
+Adding a fold with a marker in a C file doesn't add the comment /* */ if the
+line contains a * somewhere.  Patch with a fix (Hirohito Higashi, 2018 Nov 22)
+
+Crash in terminal with long multi-byte sequence. (2018 Nov 17, #3619)
+Dominique cannot reproduce. Update Nov 18.
+Suggested solution by Yasuhiro Matsumoto, 2018 Nov 18.
+
 Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
 13, #2910)  Can't reproduce?
 
@@ -123,6 +144,9 @@
 Win32 key codes are messy.  Mike Williams tried to fix that, but now old
 mappings no longer work.  Create a new terminal for the better solution?
 
+Patch to fix that appending makes items to be "recognized".
+(Yegappan, 2018 Nov 23). Reported by Daniel Hahler, #3633.
+
 Improve fallback for menu translations, to avoid having to create lots of
 files that source the actual file.  E.g. menu_da_de -> menu_da
 Include part of #3242?
@@ -130,9 +154,10 @@
 When a terminal exit_cb closes the window, a following typed key is lost, if
 it's in a mapping. (2018 Oct 6, #2302, #3522)
 
-Patch for dos installer to use logic instead of $HOME.  (Ken Takata, Nov 5,
-#3564)
+Patch to add FOR_ALL_FRAMES. (Yegappan, 2018 Nov 18)
 
+Patch to resize to fit parent position when using ---windowid. ( Agorgianitis
+Loukas, 2018 Nov 17, #3616)
 Completion mixes results from the current buffer with tags and other files.
 Happens when typing CTRL-N while still search for results.  E.g., type "b_" in
 terminal.c and then CTRL-N twice.
@@ -144,9 +169,6 @@
 
 Problem with :tlmenu: Detach item added with all modes?  Issue #3563.
 
-Patch to avoid that increment or decrement gets interrupted by updating folds.
-(Christian Brabandt, 2018 Nov 6, #3599)
-
 C syntax: {} inside () causes following {} to be highlighted as error.
 (Michalis Giannakidis, 2006 Jun 1)
 
@@ -162,9 +184,18 @@
     quickfix window, for example. (Gary Holloway)
     Also do 'sidescrolloff'.
 
+Patch for ConPTY support, #3474: What is the status?
+
 Pasting foo} causes Vim to behave weird. (John Little, 2018 Jun 17)
 Related to bracketed paste.  I cannot reproduce it.
 
+Using CTRL-L to add a character to the search string doesn't work for the last
+character in the file. (Smylers, 2018 Nov 17, #3620)
+Suggested patch by Hirohito Higashi, 2018 Nov 18.
+
+Using CTRL-L to add a character to the search string that contains \v,
+punctiuation is repeated. (Smylers, 2018 Nov 17, #3621)
+
 ":mksession" cannot handle a very long 'runtimepath'. (Timothy Madden, 21 Sep
 2018, #3466)  Patch from Christian, 2018 Oct 30 (with comments).
 
@@ -321,6 +352,8 @@
 
 Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)
 Update Sep 7.  Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1.
+Patch to be able to disable default digraphs (incomplete) (Eric Pruitt, 2018
+Nov 22).
 
 Make balloon_show() work outside of 'balloonexpr'?  Users expect it to work:
 #2948. (related to #1512?)
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 7c3f358..c7e5955 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -612,6 +612,7 @@
 	repeat()		repeat a string multiple times
 	eval()			evaluate a string expression
 	execute()		execute an Ex command and get the output
+	trim()			trim characters from a string
 
 List manipulation:					*list-functions*
 	get()			get an item without error for wrong index
@@ -799,6 +800,9 @@
 	bufwinnr()		get the window number of a specific buffer
 	winbufnr()		get the buffer number of a specific window
 	getbufline()		get a list of lines from the specified buffer
+	setbufline()		replace a line in the specified buffer
+	appendbufline()		append a list of lines in the specified buffer
+	deletebufline()		delete lines from a specified buffer
 	win_findbuf()		find windows containing a buffer
 	win_getid()		get window ID of a window
 	win_gotoid()		go to window with ID
@@ -810,6 +814,7 @@
 	getchangelist()		get a list of change list entries
 	getjumplist()		get a list of jump list entries
 	swapinfo()		information about a swap file
+	swapname()		get the swap file path of a buffer
 
 Command line:					*command-line-functions*
 	getcmdline()		get the current command line
@@ -907,6 +912,7 @@
 	winheight()		get height of a specific window
 	winwidth()		get width of a specific window
 	win_screenpos()		get screen position of a window
+	winlayout()		get layout of windows in a tab page
 	winrestcmd()		return command to restore window sizes
 	winsaveview()		get view of current window
 	winrestview()		restore saved view of current window
@@ -919,6 +925,7 @@
 
 Testing:				    *test-functions*
 	assert_equal()		assert that two expressions values are equal
+	assert_equalfile()	assert that two file contents are equal
 	assert_notequal()	assert that two expressions values are not equal
 	assert_inrange()	assert that an expression is inside a range
 	assert_match()		assert that a pattern matches the value
@@ -941,6 +948,9 @@
 	test_null_partial()	return a null Partial function
 	test_null_string()	return a null String
 	test_settime()		set the time Vim uses internally
+	test_feedinput()	add key sequence to input buffer
+	test_option_not_set()	reset flag indicating option was set
+	test_scrollbar()	simulate scrollbar movement in the GUI
 
 Inter-process communication:		    *channel-functions*
 	ch_canread()		check if there is something to read
@@ -991,6 +1001,12 @@
 	term_gettty()		get the tty name of a terminal
 	term_setansicolors()	set 16 ANSI colors, used for GUI
 	term_getansicolors()	get 16 ANSI colors, used for GUI
+	term_dumpdiff()		display difference between two screen dumps
+	term_dumpload()		load a terminal screen dump in a window
+	term_dumpwrite()	dump contents of a terminal screen to a file
+	term_setkill()		set signal to stop job in a terminal
+	term_setrestore()	set command to restore a terminal
+	term_setsize()		set the size of a terminal
 
 Timers:						*timer-functions*
 	timer_start()		create a timer
@@ -999,6 +1015,17 @@
 	timer_stopall()		stop all timers
 	timer_info()		get information about timers
 
+Tags:						*tag-functions*
+	taglist()		get list of matching tags
+	tagfiles()		get a list of tags files
+	gettagstack()		get the tag stack of a window
+	settagstack()		modify the tag stack of a window
+
+Prompt Buffer:					*promptbuffer-functions*
+	prompt_setcallback()	set prompt callback for a buffer
+	prompt_setinterrupt()	set interrupt callback for a buffer
+	prompt_setprompt()	set the prompt text for a buffer
+
 Various:					*various-functions*
 	mode()			get current editing mode
 	visualmode()		last visual mode used
@@ -1026,17 +1053,13 @@
 
 	wordcount()		get byte/word/char count of buffer
 
-	taglist()		get list of matching tags
-	tagfiles()		get a list of tags files
-	gettagstack()		get the tag stack
-	settagstack()		modify the tag stack
-
 	luaeval()		evaluate Lua expression
 	mzeval()		evaluate |MzScheme| expression
 	perleval()		evaluate Perl expression (|+perl|)
 	py3eval()		evaluate Python expression (|+python3|)
 	pyeval()		evaluate Python expression (|+python|)
 	pyxeval()		evaluate |python_x| expression
+	debugbreak()		interrupt a program  being debugged
 
 ==============================================================================
 *41.7*	Defining a function
