diff --git a/Makefile b/Makefile
index 642d25c..7774b6e 100644
--- a/Makefile
+++ b/Makefile
@@ -153,7 +153,7 @@
 #   > msvc2015.bat
 # - Build the console binary:
 #   > nmake -f Make_mvc.mak
-# - Run the tests and check the ouput:
+# - Run the tests and check the output:
 #   > nmake -f Make_mvc.mak testclean
 #   > nmake -f Make_mvc.mak test
 # - Rename (using ../tools/rename.bat):
diff --git a/src/INSTALLvms.txt b/src/INSTALLvms.txt
index 7966e6f..3e05b53 100644
--- a/src/INSTALLvms.txt
+++ b/src/INSTALLvms.txt
@@ -198,7 +198,7 @@
      more information can be found in os_vms_fix.com file itself.
 
      NOTE: even if os_vms_fix.com will fix all pre-processor directives it will
-     leave singe (long) line directives. You have to fix them manually.
+     leave single (long) line directives. You have to fix them manually.
      Known problematic files are option.h and option.c
 
 4.2. After the conversion you can continue building as it has been described
@@ -319,7 +319,7 @@
 
      Build it as normally.
 
-     Used sharable images are:
+     Used shareable images are:
 	gtk_root:[glib]libglib.exe /share,-
 	gtk_root:[glib.gmodule]libgmodule.exe /share,-
 	gtk_root:[gtk.gdk]libgdk.exe /share,-
diff --git a/src/Make_vms.mms b/src/Make_vms.mms
index c5af714..6d5db4b 100644
--- a/src/Make_vms.mms
+++ b/src/Make_vms.mms
@@ -281,7 +281,7 @@
  $(TCL_INC)$(XDIFF_INC)$(XPM_INC))
 
 # CFLAGS displayed in :ver information
-# It is specially formated for correct display of unix like includes
+# It is specially formatted for correct display of unix like includes
 # as $(GUI_INC) - replaced with $(GUI_INC_VER)
 # Otherwise should not be any other difference.
 ALL_CFLAGS_VER = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) -
diff --git a/src/beval.h b/src/beval.h
index ffe47ff..f446200 100644
--- a/src/beval.h
+++ b/src/beval.h
@@ -38,7 +38,7 @@
     GtkWidget		*balloonShell;
     GtkWidget		*balloonLabel;
     unsigned int	timerID;	// timer for run
-    BeState		showState;	// tells us whats currently going on
+    BeState		showState;	// tells us what's currently going on
     int			x;
     int			y;
     unsigned int	state;		// Button/Modifier key state
@@ -48,7 +48,7 @@
     Widget		balloonShell;
     Widget		balloonLabel;
     XtIntervalId	timerID;	// timer for run
-    BeState		showState;	// tells us whats currently going on
+    BeState		showState;	// tells us what's currently going on
     XtAppContext	appContext;	// used in event handler
     Position		x;
     Position		y;
@@ -60,7 +60,7 @@
     HWND		balloon;
     int			x;
     int			y;
-    BeState		showState;	// tells us whats currently going on
+    BeState		showState;	// tells us what's currently going on
 #  endif
 # endif
 # if !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_MSWIN)
diff --git a/src/buffer.c b/src/buffer.c
index f56ff0b..7ff8097 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1690,7 +1690,7 @@
     set_bufref(&prevbufref, prevbuf);
     set_bufref(&newbufref, buf);
 
-    // Autocommands may delete the curren buffer and/or the buffer we wan to go
+    // Autocommands may delete the current buffer and/or the buffer we want to go
     // to.  In those cases don't close the buffer.
     if (!apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf)
 	    || (bufref_valid(&prevbufref)
@@ -1713,6 +1713,7 @@
 #endif
 	{
 	    win_T  *previouswin = curwin;
+
 	    if (prevbuf == curbuf)
 		u_sync(FALSE);
 	    close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
diff --git a/src/charset.c b/src/charset.c
index 7505fea..aa843d1 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1939,7 +1939,7 @@
 	}
     }
 
-    // Check for an alpha-numeric character immediately following, that is
+    // Check for an alphanumeric character immediately following, that is
     // most likely a typo.
     if (strict && n - 1 != maxlen && ASCII_ISALNUM(*ptr))
 	return;
diff --git a/src/evalvars.c b/src/evalvars.c
index 866682b..38cb457 100644
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -2813,7 +2813,7 @@
 		    char_u *val = tv_get_string(tv);
 
 		    // Careful: when assigning to v:errmsg and tv_get_string()
-		    // causes an error message the variable will alrady be set.
+		    // causes an error message the variable will already be set.
 		    if (di->di_tv.vval.v_string == NULL)
 			di->di_tv.vval.v_string = vim_strsave(val);
 		}
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index c8a93bc..881e6f9 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -5288,7 +5288,7 @@
  * Return a heuristic indicating how well the given string matches.  The
  * smaller the number, the better the match.  This is the order of priorities,
  * from best match to worst match:
- *	- Match with least alpha-numeric characters is better.
+ *	- Match with least alphanumeric characters is better.
  *	- Match with least total characters is better.
  *	- Match towards the start is better.
  *	- Match starting with "+" is worse (feature instead of command)
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index c0ed1c8..6df6975 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -6134,7 +6134,7 @@
 }
 
 /*
- * ":edit <file>" command and alikes.
+ * ":edit <file>" command and alike.
  */
     void
 do_exedit(
diff --git a/src/getchar.c b/src/getchar.c
index 72ddbb9..d056bcc 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -3237,7 +3237,7 @@
  *	1. a scriptfile
  *	2. the keyboard
  *
- *  As much characters as we can get (upto 'maxlen') are put in "buf" and
+ *  As many characters as we can get (up to 'maxlen') are put in "buf" and
  *  NUL terminated (buffer length must be 'maxlen' + 1).
  *  Minimum for "maxlen" is 3!!!!
  *
diff --git a/src/gui.c b/src/gui.c
index eec89d5..f1c36f4 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -3420,7 +3420,7 @@
     if (oldval != NULL && gui.in_use)
     {
 	/*
-	 * Check if the menu's go from grey to non-grey or vise versa.
+	 * Check if the menus go from grey to non-grey or vice versa.
 	 */
 	grey_old = (vim_strchr(oldval, GO_GREY) != NULL);
 	grey_new = (vim_strchr(p_go, GO_GREY) != NULL);
diff --git a/src/gui_mac.c b/src/gui_mac.c
index 3dfb939..875b3ec 100644
--- a/src/gui_mac.c
+++ b/src/gui_mac.c
@@ -2919,7 +2919,7 @@
 
     (void)FSGetCatalogInfo(&applFSRef, kFSCatInfoNone, NULL, NULL, &applDir, NULL);
 
-    // This technic return NIL when we disallow_gui
+    // This technique returns NIL when we disallow_gui
 # endif
     exe_name = FullPathFromFSSpec_save(applDir);
 #endif
diff --git a/src/gui_photon.c b/src/gui_photon.c
index 963cabc..1a7288b 100644
--- a/src/gui_photon.c
+++ b/src/gui_photon.c
@@ -1206,7 +1206,7 @@
 
     /*
      * Now that the text area widget has been created, set up the colours,
-     * which wil call PtSetResource from gui_mch_new_colors
+     * which will call PtSetResource from gui_mch_new_colors
      */
 
     /*
diff --git a/src/if_perl.xs b/src/if_perl.xs
index fd9d3d7..12e1a22 100644
--- a/src/if_perl.xs
+++ b/src/if_perl.xs
@@ -930,7 +930,7 @@
 
     if (SvRV(sv) != SvRV(rv))
 	// XXX: This magic variable is a bit confusing...
-	// Is curently refcounted ?
+	// Is currently refcounted ?
 	sv_setsv(sv, rv);
 
     SvREFCNT_dec(rv);
diff --git a/src/libvterm/t/11state_movecursor.test b/src/libvterm/t/11state_movecursor.test
index c1d72b2..26e447e 100644
--- a/src/libvterm/t/11state_movecursor.test
+++ b/src/libvterm/t/11state_movecursor.test
@@ -112,7 +112,7 @@
 PUSH "\e[0F"
   ?cursor = 0,0
 
-!Cursor Horizonal Absolute
+!Cursor Horizontal Absolute
 PUSH "\n"
   ?cursor = 1,0
 PUSH "\e[20G"
diff --git a/src/libvterm/t/41screen_unicode.test b/src/libvterm/t/41screen_unicode.test
index 79dcb68..6f5602d 100644
--- a/src/libvterm/t/41screen_unicode.test
+++ b/src/libvterm/t/41screen_unicode.test
@@ -40,7 +40,7 @@
 PUSH  "\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81\xCC\x81"
   ?screen_cell 0,0 = {0x65,0x301,0x301,0x301,0x301,0x301} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0)
 
-!Outputing CJK doublewidth in 80th column should wraparound to next line and not crash"
+!Outputting CJK doublewidth in 80th column should wraparound to next line and not crash"
 RESET
 PUSH "\e[80G\xEF\xBC\x90"
   ?screen_cell 0,79 = {} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0)
diff --git a/src/mbyte.c b/src/mbyte.c
index 5dd2562..abb07ae 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -960,7 +960,7 @@
 			// special symbols
 			return 10;
 		    case 0x23:
-			// alpha-numeric
+			// alphanumeric
 			return 11;
 		    case 0x24:
 			// hiragana
@@ -994,7 +994,7 @@
 		 * 20 : Hangul
 		 * 21 : Hanja
 		 * 22 : Symbols
-		 * 23 : Alpha-numeric/Roman Letter (Full width)
+		 * 23 : Alphanumeric/Roman Letter (Full width)
 		 * 24 : Hangul Letter(Alphabet)
 		 * 25 : Roman Numeral/Greek Letter
 		 * 26 : Box Drawings
@@ -1025,7 +1025,7 @@
 			// Symbols
 			return 22;
 		    case 0xA3:
-			// Alpha-numeric
+			// Alphanumeric
 			return 23;
 		    case 0xA4:
 			// Hangul Letter(Alphabet)
diff --git a/src/memline.c b/src/memline.c
index aeb8afe..c6db913 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -111,7 +111,7 @@
     unsigned	db_txt_end;	// byte just after data block
     linenr_T	db_line_count;	// number of lines in this block
     unsigned	db_index[1];	// index for start of line (actually bigger)
-				// followed by empty space upto db_txt_start
+				// followed by empty space up to db_txt_start
 				// followed by the text in the lines until
 				// end of page
 };
diff --git a/src/normal.c b/src/normal.c
index c4963e6..512b799 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -5659,7 +5659,7 @@
     VIsual_reselect = TRUE;
 
     // Corner case: the 0 position in a tab may change when going into
-    // virtualedit.  Recalculate curwin->w_cursor to avoid bad hilighting.
+    // virtualedit.  Recalculate curwin->w_cursor to avoid bad highlighting.
     if (c == Ctrl_V && (ve_flags & VE_BLOCK) && gchar_cursor() == TAB)
     {
 	validate_virtcol();
diff --git a/src/ops.c b/src/ops.c
index b412b8a..6a6abf7 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -314,7 +314,7 @@
 	 *  3. Divvy into TABs & spp
 	 *  4. Construct new string
 	 */
-	total += bd.pre_whitesp; // all virtual WS upto & incl a split TAB
+	total += bd.pre_whitesp; // all virtual WS up to & incl a split TAB
 	ws_vcol = bd.start_vcol - bd.pre_whitesp;
 	if (bd.startspaces)
 	{
diff --git a/src/option.c b/src/option.c
index e24181a..f02dd26 100644
--- a/src/option.c
+++ b/src/option.c
@@ -3155,7 +3155,7 @@
 
 #if defined(FEAT_EVAL)
     // Save the global value before changing anything. This is needed as for
-    // a global-only option setting the "local value" infact sets the global
+    // a global-only option setting the "local value" in fact sets the global
     // value (since there is only one value).
     if ((opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0)
 	old_global_value = *(long *)get_varp_scope(&(options[opt_idx]),
diff --git a/src/option.h b/src/option.h
index 4ccf22a..8b04d18 100644
--- a/src/option.h
+++ b/src/option.h
@@ -1066,7 +1066,7 @@
 EXTERN long	p_wd;		// 'writedelay'
 
 /*
- * "indir" values for buffer-local opions.
+ * "indir" values for buffer-local options.
  * These need to be defined globally, so that the BV_COUNT can be used with
  * b_p_scriptID[].
  */
diff --git a/src/os_unix.c b/src/os_unix.c
index 5f2ece3..15d88f9 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -1931,7 +1931,7 @@
 	 * keep traversing up the tree until a window with a title/icon is
 	 * found.
 	 */
-	// Previously this was only done for xterm and alikes.  I don't see a
+	// Previously this was only done for xterm and alike.  I don't see a
 	// reason why it would fail for other terminal emulators.
 	// if (term_is_xterm)
 	{
diff --git a/src/os_win32.c b/src/os_win32.c
index 844d794..6bbd492 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -6927,7 +6927,7 @@
 	return 0;
     pStackBase = (BYTE*)mbi.AllocationBase;
 
-    // ...and the page thats min_stack_req pages away from stack base; this is
+    // ...and the page that's min_stack_req pages away from stack base; this is
     // the lowest page we could use.
     pLowestPossiblePage = pStackBase + MIN_STACK_WINNT * nPageSize;
 
diff --git a/src/quickfix.c b/src/quickfix.c
index 2e07403..868b5d9 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -2771,7 +2771,7 @@
 }
 
 /*
- * Get a entry specied by 'errornr' and 'dir' from the current
+ * Get a entry specified by 'errornr' and 'dir' from the current
  * quickfix/location list. 'errornr' specifies the index of the entry and 'dir'
  * specifies the direction (FORWARD/BACKWARD/FORWARD_FILE/BACKWARD_FILE).
  * Returns a pointer to the entry and the index of the new entry is stored in
@@ -6320,7 +6320,7 @@
 
 #if defined(FEAT_EVAL) || defined(PROTO)
 /*
- * Copy the specified quickfix entry items into a new dict and appened the dict
+ * Copy the specified quickfix entry items into a new dict and append the dict
  * to 'list'.  Returns OK on success.
  */
     static int
diff --git a/src/register.c b/src/register.c
index 24e4b99..6960002 100644
--- a/src/register.c
+++ b/src/register.c
@@ -590,7 +590,7 @@
 	if (y_current->y_array == NULL)
 	    return FAIL;
 
-	// Disallow remaping for ":@r".
+	// Disallow remapping for ":@r".
 	remap = colon ? REMAP_NONE : REMAP_YES;
 
 	// Insert lines into typeahead buffer, from last one to first one.
diff --git a/src/spell.c b/src/spell.c
index 572f7fb..87c8f8a 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -1786,7 +1786,7 @@
 count_common_word(
     slang_T	*lp,
     char_u	*word,
-    int		len,	    // word length, -1 for upto NUL
+    int		len,	    // word length, -1 for up to NUL
     int		count)	    // 1 to count once, 10 to init
 {
     hash_T	hash;
diff --git a/src/tag.c b/src/tag.c
index aaf19c9..4c6dadc 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -4123,7 +4123,7 @@
 
 /*
  * Remove the oldest entry from the tag stack and shift the rest of
- * the entires to free up the top of the stack.
+ * the entries to free up the top of the stack.
  */
     static void
 tagstack_shift(win_T *wp)
diff --git a/src/term.c b/src/term.c
index c74c5ba..1399286 100644
--- a/src/term.c
+++ b/src/term.c
@@ -146,7 +146,7 @@
 // Request cursor style report:
 static termrequest_T rcs_status = TERMREQUEST_INIT;
 
-// Request windos position report:
+// Request window's position report:
 static termrequest_T winpos_status = TERMREQUEST_INIT;
 
 static termrequest_T *all_termrequests[] = {
diff --git a/src/testdir/test_breakindent.vim b/src/testdir/test_breakindent.vim
index f7cfb4e..6e4e090 100644
--- a/src/testdir/test_breakindent.vim
+++ b/src/testdir/test_breakindent.vim
@@ -1,7 +1,7 @@
 " Test for breakindent
 "
 " Note: if you get strange failures when adding new tests, it might be that
-" while the test is run, the breakindent cacheing gets in its way.
+" while the test is run, the breakindent caching gets in its way.
 " It helps to change the tabstop setting and force a redraw (e.g. see
 " Test_breakindent08())
 source check.vim
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index dace45b..bd442c2 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -20,7 +20,7 @@
 
 let s:chopt = {}
 
-" Run "testfunc" after sarting the server and stop the server afterwards.
+" Run "testfunc" after starting the server and stop the server afterwards.
 func s:run_server(testfunc, ...)
   call RunServer('test_channel.py', a:testfunc, a:000)
 endfunc
@@ -425,7 +425,7 @@
 
   " We intend to use a socket that doesn't exist and wait for half a second
   " before giving up.  If the socket does exist it can fail in various ways.
-  " Check for "Connection reset by peer" to avoid flakyness.
+  " Check for "Connection reset by peer" to avoid flakiness.
   let start = reltime()
   try
     let handle = ch_open('localhost:9867', {'waittime': 500})
diff --git a/src/testdir/test_cindent.vim b/src/testdir/test_cindent.vim
index 2d78be1..dfafd01 100644
--- a/src/testdir/test_cindent.vim
+++ b/src/testdir/test_cindent.vim
@@ -815,7 +815,7 @@
         }
      }
 
-  public: // <-- this was incorectly indented before!!
+  public: // <-- this was incorrectly indented before!!
      void testfall();
   protected:
      void testfall();
@@ -1780,7 +1780,7 @@
   		}
   	}
 
-  	public: // <-- this was incorectly indented before!!
+  	public: // <-- this was incorrectly indented before!!
   	void testfall();
   	protected:
   	void testfall();
@@ -5254,9 +5254,12 @@
 " this was going beyond the end of the line.
 func Test_cindent_case()
   new
-  call setline(1, "case x: // x")
+  call setline(1, 'case x: // x')
   set cindent
   norm! f:a:
+  call assert_equal('case x:: // x', getline(1))
+
+  set cindent&
   bwipe!
 endfunc
 
diff --git a/src/testdir/test_digraph.vim b/src/testdir/test_digraph.vim
index 6435c86..e66663b 100644
--- a/src/testdir/test_digraph.vim
+++ b/src/testdir/test_digraph.vim
@@ -80,7 +80,7 @@
   call Put_Dig(".e")
   call Put_Dig("a.") " not defined
   call assert_equal(['ḃ', 'ė', '.'], getline(line('.')-2,line('.')))
-  " Diaresis
+  " Diaeresis
   call Put_Dig("a:")
   call Put_Dig(":u")
   call Put_Dig("b:") " not defined
@@ -285,7 +285,7 @@
   call Put_Dig_BS(".","e")
   call Put_Dig_BS("a",".") " not defined
   call assert_equal(['ḃ', 'ė', '.'], getline(line('.')-2,line('.')))
-  " Diaresis
+  " Diaeresis
   call Put_Dig_BS("a",":")
   call Put_Dig_BS(":","u")
   call Put_Dig_BS("b",":") " not defined
diff --git a/src/testdir/test_edit.vim b/src/testdir/test_edit.vim
index 4e29e7f..1a37146 100644
--- a/src/testdir/test_edit.vim
+++ b/src/testdir/test_edit.vim
@@ -589,7 +589,7 @@
   call feedkeys("A\<c-x>\<c-k>\<down>\<down>\<down>\<down>\<cr>\<esc>", 'tnix')
   call assert_equal(['AA'], getline(1, '$'))
 
-  " press an unexecpted key after dictionary completion
+  " press an unexpected key after dictionary completion
   %d
   call setline(1, 'A')
   call cursor(1, 1)
diff --git a/src/testdir/test_netbeans.vim b/src/testdir/test_netbeans.vim
index 690ac67..61da44d 100644
--- a/src/testdir/test_netbeans.vim
+++ b/src/testdir/test_netbeans.vim
@@ -10,7 +10,7 @@
   throw 'Skipped: python program missing'
 endif
 
-" Run "testfunc" after sarting the server and stop the server afterwards.
+" Run "testfunc" after starting the server and stop the server afterwards.
 func s:run_server(testfunc, ...)
   call RunServer('test_netbeans.py', a:testfunc, a:000)
 endfunc
diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim
index b7b4281..129b1cf 100644
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -2629,7 +2629,7 @@
   call assert_equal('quickfix', getwinvar(1, '&buftype'))
   call assert_equal('quickfix', getwinvar(3, '&buftype'))
 
-  " Jumping to a file from the location list window should find a usuable
+  " Jumping to a file from the location list window should find a usable
   " window by wrapping around the window list.
   enew | only
   call setloclist(0, [], 'f')
diff --git a/src/testdir/test_registers.vim b/src/testdir/test_registers.vim
index b6bce46..45cf02a 100644
--- a/src/testdir/test_registers.vim
+++ b/src/testdir/test_registers.vim
@@ -274,7 +274,7 @@
   call setreg('=', 'b', 'a')
   call assert_equal('regwrite', getreg('='))
 
-  " Test for settting a list of lines to special registers
+  " Test for setting a list of lines to special registers
   call setreg('/', [])
   call assert_equal('', @/)
   call setreg('=', [])
diff --git a/src/testdir/test_stat.vim b/src/testdir/test_stat.vim
index c8830d1..ccd5950 100644
--- a/src/testdir/test_stat.vim
+++ b/src/testdir/test_stat.vim
@@ -5,7 +5,7 @@
   let times = []
   let result = 0
 
-  " Use three files istead of localtim(), with a network filesystem the file
+  " Use three files instead of localtim(), with a network filesystem the file
   " times may differ at bit
   let fl = ['Hello World!']
   for fname in fnames
diff --git a/src/ui.c b/src/ui.c
index 151857f..393bf91 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -1500,7 +1500,7 @@
 	    row2--;
 	}
 
-	// Handle the rectangle thats left
+	// Handle the rectangle that's left
 	if (row2 >= row1)
 	    clip_invert_rectangle(cbd, row1, 0, row2 - row1 + 1,
 							 (int)Columns, invert);
diff --git a/src/version.c b/src/version.c
index dc531be..ed71960 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    156,
+/**/
     155,
 /**/
     154,
diff --git a/src/xxd/xxd.c b/src/xxd/xxd.c
index f2192cf..20a7ad7 100644
--- a/src/xxd/xxd.c
+++ b/src/xxd/xxd.c
@@ -35,7 +35,7 @@
  *	    xxdline().
  *  7.06.96 -i printed 'int' instead of 'char'. *blush*
  *	    added Bram's OS2 ifdefs...
- * 18.07.96 gcc -Wall @ SunOS4 is now slient.
+ * 18.07.96 gcc -Wall @ SunOS4 is now silent.
  *	    Added osver for MSDOS/DJGPP/WIN32.
  * 29.08.96 Added size_t to strncmp() for Amiga.
  * 24.03.97 Windows NT support (Phil Hanna). Clean exit for Amiga WB (Bram)
