diff --git a/src/getchar.c b/src/getchar.c
index 8c6b48d..c357354 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -2677,7 +2677,7 @@
 		if (mp == NULL)
 		{
 		    *keylenp = keylen;
-		    return map_result_get;    // got character, break for loop
+		    return map_result_get;    // get character from typeahead
 		}
 	}
 
@@ -3060,7 +3060,7 @@
 						      typebuf.tb_off];
 			    del_typebuf(1, 0);
 			}
-			break;
+			break;  // got character, break the for loop
 		    }
 
 		    // not enough characters, get more
diff --git a/src/gui_motif.c b/src/gui_motif.c
index 67f9c63..d79a414 100644
--- a/src/gui_motif.c
+++ b/src/gui_motif.c
@@ -3995,7 +3995,7 @@
 }
 
 /*
- * Synchronize all gui elements, which are dependant upon the
+ * Synchronize all gui elements, which are dependent upon the
  * main text font used. Those are in esp. the find/replace dialogs.
  * If you don't understand why this should be needed, please try to
  * search for "pi\xea\xb6\xe6" in iso8859-2.
diff --git a/src/mbyte.c b/src/mbyte.c
index 759be8b..0e9c926 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -3847,6 +3847,11 @@
     return (q == p) ? 0 : 1;
 }
 
+/*
+ * Return offset from "p" to the start of a character, including composing
+ * characters.  "base" must be the start of the string, which must be NUL
+ * terminated.
+ */
     int
 utf_head_off(char_u *base, char_u *p)
 {
@@ -4107,6 +4112,7 @@
 /*
  * Return the offset from "p" to the last byte of the character it points
  * into.  Can start anywhere in a stream of bytes.
+ * Composing characters are not included.
  */
     int
 mb_tail_off(char_u *base, char_u *p)
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index ffe894d..9dc246d 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -18,7 +18,7 @@
  * The last three are enabled when compiled as debug mode and individually
  * disabled by commenting them out.
  * The log files can get quite big!
- * Do disable all of this when compiling Vim for debugging, undefine DEBUG in
+ * To disable all of this when compiling Vim for debugging, undefine DEBUG in
  * regexp.c
  */
 #ifdef DEBUG
diff --git a/src/testdir/test_edit.vim b/src/testdir/test_edit.vim
index 9e17636..46a4752 100644
--- a/src/testdir/test_edit.vim
+++ b/src/testdir/test_edit.vim
@@ -1326,6 +1326,7 @@
   call assert_fails(':Sandbox', 'E48:')
   delcom Sandbox
   call assert_equal(['a'], getline(1,'$'))
+
   " 2) edit with textlock set
   fu! DoIt()
     call feedkeys("i\<del>\<esc>", 'tnix')
@@ -1345,6 +1346,7 @@
   catch /^Vim\%((\a\+)\)\=:E117/ " catch E117: unknown function
   endtry
   au! InsertCharPre
+
   " 3) edit when completion is shown
   fun! Complete(findstart, base)
     if a:findstart
@@ -1362,6 +1364,7 @@
   endtry
   delfu Complete
   set completefunc=
+
   if has("rightleft") && exists("+fkmap")
     " 4) 'R' when 'fkmap' and 'revins' is set.
     set revins fkmap
diff --git a/src/version.c b/src/version.c
index 6576a55..d1b667a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -750,6 +750,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3825,
+/**/
     3824,
 /**/
     3823,
