diff --git a/src/channel.c b/src/channel.c
index dd47c5b..ca83102 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -1906,7 +1906,7 @@
 
     if (prepend)
     {
-	/* preend node to the head of the queue */
+	// prepend node to the head of the queue
 	node->rq_next = head->rq_next;
 	node->rq_prev = NULL;
 	if (head->rq_next == NULL)
@@ -1917,7 +1917,7 @@
     }
     else
     {
-	/* append node to the tail of the queue */
+	// append node to the tail of the queue
 	node->rq_next = NULL;
 	node->rq_prev = head->rq_prev;
 	if (head->rq_prev == NULL)
diff --git a/src/crypt.c b/src/crypt.c
index e9c52aa..085f8bb 100644
--- a/src/crypt.c
+++ b/src/crypt.c
@@ -42,7 +42,7 @@
     /* Optional function pointer for a self-test. */
     int (* self_test_fn)();
 
-    // Function pointer for initializing encryption/description.
+    // Function pointer for initializing encryption/decryption.
     void (* init_fn)(cryptstate_T *state, char_u *key,
 		      char_u *salt, int salt_len, char_u *seed, int seed_len);
 
diff --git a/src/edit.c b/src/edit.c
index 43c8a8b..483ef4a 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -4558,10 +4558,8 @@
 	/* Re-enable bracketed paste mode. */
 	out_str(T_BE);
 
-    /*
-     * When recording or for CTRL-O, need to display the new mode.
-     * Otherwise remove the mode message.
-     */
+    // When recording or for CTRL-O, need to display the new mode.
+    // Otherwise remove the mode message.
     if (reg_recording != 0 || restart_edit != NUL)
 	showmode();
     else if (p_smd && (got_int || !skip_showmode()))
diff --git a/src/installman.sh b/src/installman.sh
index 23fc325..00a33a2 100755
--- a/src/installman.sh
+++ b/src/installman.sh
@@ -6,7 +6,7 @@
 # 2  target directory			   e.g., "/usr/local/man/it/man1"
 # 3  language addition			   e.g., "" or "-it"
 # 4  vim location as used in manual pages  e.g., "/usr/local/share/vim"
-# 5  runtime dir for menu.vim et al.	   e.g., "/usr/local/share/vim/vim70"
+# 5  runtime dir for menu.vim et al.	   e.g., "/usr/local/share/vim/vim81"
 # 6  runtime dir for global vimrc file	   e.g., "/usr/local/share/vim"
 # 7  source dir for help files		   e.g., "../runtime/doc"
 # 8  mode bits for manpages		   e.g., "644"
diff --git a/src/regexp.h b/src/regexp.h
index fa3ff42..c2fafef 100644
--- a/src/regexp.h
+++ b/src/regexp.h
@@ -81,7 +81,7 @@
 
 /*
  * Structure representing a NFA state.
- * A NFA state may have no outgoing edge, when it is a NFA_MATCH state.
+ * An NFA state may have no outgoing edge, when it is a NFA_MATCH state.
  */
 typedef struct nfa_state nfa_state_T;
 struct nfa_state
diff --git a/src/tag.c b/src/tag.c
index 6a85e74..1afeaa2 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -2368,9 +2368,9 @@
 		     * Don't add identical matches.
 		     * Add all cscope tags, because they are all listed.
 		     * "mfp" is used as a hash key, there is a NUL byte to end
-		     * the part matters for comparing, more bytes may follow
-		     * after it.  E.g. help tags store the priority after the
-		     * NUL.
+		     * the part that matters for comparing, more bytes may
+		     * follow after it.  E.g. help tags store the priority
+		     * after the NUL.
 		     */
 #ifdef FEAT_CSCOPE
 		    if (use_cscope)
diff --git a/src/term.c b/src/term.c
index ff1adc9..c7e8ddf 100644
--- a/src/term.c
+++ b/src/term.c
@@ -21,8 +21,8 @@
  * (char **). This define removes that prototype. We include our own prototype
  * below.
  */
-
 #define tgetstr tgetstr_defined_wrong
+
 #include "vim.h"
 
 #ifdef HAVE_TGETENT
diff --git a/src/terminal.c b/src/terminal.c
index 7dd0387..a8a1618 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -5671,9 +5671,9 @@
 typedef int HPCON;
 typedef int HRESULT;
 typedef int LPPROC_THREAD_ATTRIBUTE_LIST;
+typedef int SIZE_T;
 typedef int PSIZE_T;
 typedef int PVOID;
-typedef int SIZE_T;
 typedef int WINAPI;
 #endif
 
diff --git a/src/userfunc.c b/src/userfunc.c
index 41c660c..bd7d2f7 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -508,7 +508,8 @@
 		*error = ERROR_SCRIPT;
 	    else
 	    {
-		sprintf((char *)fname_buf + 3, "%ld_", (long)current_sctx.sc_sid);
+		sprintf((char *)fname_buf + 3, "%ld_",
+						    (long)current_sctx.sc_sid);
 		i = (int)STRLEN(fname_buf);
 	    }
 	}
diff --git a/src/version.c b/src/version.c
index e6de24b..a4e0129 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1194,
+/**/
     1193,
 /**/
     1192,
