diff --git a/src/Makefile b/src/Makefile
index a63b9ce..3cd1ae7 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -205,7 +205,6 @@
 #Tandem/NSK						     (c) Matthew Woehlke
 #Unisys 6035	      cc	     +X11 Motif		5.3  (8) Glauber Ribeiro
 #ESIX V4.2	      cc	     +X11		6.0  (a) Reinhard Wobst
-#Mac OS X 10.[23]     gcc	     Carbon		6.2  (x) Bram Moolenaar
 # }}}
 
 # (*)  Remarks: {{{
diff --git a/src/if_tcl.c b/src/if_tcl.c
index 8a6af8d..9e018a2 100644
--- a/src/if_tcl.c
+++ b/src/if_tcl.c
@@ -221,12 +221,13 @@
     for (i = 0; tcl_funcname_table[i].ptr; ++i)
     {
 	if (!(*tcl_funcname_table[i].ptr = symbol_from_dll(hTclLib,
-			tcl_funcname_table[i].name)))
+						  tcl_funcname_table[i].name)))
 	{
 	    close_dll(hTclLib);
 	    hTclLib = NULL;
 	    if (verbose)
-		semsg(_(e_could_not_load_library_function_str), tcl_funcname_table[i].name);
+		semsg(_(e_could_not_load_library_function_str),
+						   tcl_funcname_table[i].name);
 	    return FAIL;
 	}
     }
@@ -263,11 +264,13 @@
     {
 	Tcl_Interp *interp;
 
+	// Note: the library will allocate memory to store the executable name,
+	// which will be reported as possibly leaked by valgrind.
 	dll_Tcl_FindExecutable(find_executable_arg);
 
 	if ((interp = dll_Tcl_CreateInterp()) != NULL)
 	{
-	    if (Tcl_InitStubs(interp, DYNAMIC_TCL_VER, 0))
+	    if (Tcl_InitStubs(interp, DYNAMIC_TCL_VER, 0) != NULL)
 	    {
 		Tcl_DeleteInterp(interp);
 		stubs_initialized = TRUE;
@@ -280,6 +283,9 @@
 #endif
 
 #if defined(EXITFREE) || defined(PROTO)
+/*
+ * Called once when exiting.
+ */
     void
 vim_tcl_finalize(void)
 {
diff --git a/src/os_unix.c b/src/os_unix.c
index 260a847..18c766d 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -175,7 +175,8 @@
 #endif
 #if defined(SIGTSTP)
 static void sig_tstp SIGPROTOARG;
-// volatile because it is used in signal handler sig_tstp() and sigcont_handler().
+// volatile because it is used in signal handler sig_tstp() and
+// sigcont_handler().
 static volatile sig_atomic_t in_mch_suspend = FALSE;
 #endif
 #if defined(SIGINT)
diff --git a/src/regexp.c b/src/regexp.c
index e6b75ea..2cbe64e 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -2023,7 +2023,7 @@
 
 	    // Although unlikely, it is possible that the expression invokes a
 	    // substitute command (it might fail, but still).  Therefore keep
-	    // an array if eval results.
+	    // an array of eval results.
 	    ++nesting;
 
 	    if (expr != NULL)
diff --git a/src/testdir/test_gui.vim b/src/testdir/test_gui.vim
index 373a0a2..2612812 100644
--- a/src/testdir/test_gui.vim
+++ b/src/testdir/test_gui.vim
@@ -1343,8 +1343,6 @@
 
 " Test for dropping files into a window in GUI
 func DropFilesInCmdLine()
-  CheckFeature drop_file
-
   call feedkeys(":\"", 'L')
   let d = #{files: ['a.c', 'b.c'], row: &lines, col: 1, modifiers: 0}
   call test_gui_event('dropfiles', d)
diff --git a/src/version.c b/src/version.c
index 27da2ee..a915c5c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -13,6 +13,7 @@
  * Vim originated from Stevie version 3.6 (Fish disk 217) by GRWalter (Fred)
  * It has been changed beyond recognition since then.
  *
+ * Differences between version 8.2 and 9.0 can be found with ":help version9".
  * Differences between version 7.4 and 8.x can be found with ":help version8".
  * Differences between version 6.4 and 7.x can be found with ":help version7".
  * Differences between version 5.8 and 6.x can be found with ":help version6".
@@ -735,6 +736,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    5154,
+/**/
     5153,
 /**/
     5152,
@@ -11533,7 +11536,7 @@
 	"",
 	N_("type  :q<Enter>               to exit         "),
 	N_("type  :help<Enter>  or  <F1>  for on-line help"),
-	N_("type  :help version8<Enter>   for version info"),
+	N_("type  :help version9<Enter>   for version info"),
 	NULL,
 	"",
 	N_("Running in Vi compatible mode"),
