diff --git a/src/feature.h b/src/feature.h
index ad61cb9..24c8448 100644
--- a/src/feature.h
+++ b/src/feature.h
@@ -823,10 +823,10 @@
  * +mouse_gpm		Unix only: Include code for Linux console mouse
  *			handling.
  * +mouse_pterm		PTerm mouse support for QNX
- * +mouse_sgr		Unix only: Include code for for SGR-styled mouse.
+ * +mouse_sgr		Unix only: Include code for SGR-styled mouse.
  * +mouse_sysmouse	Unix only: Include code for FreeBSD and DragonFly
  *			console mouse handling.
- * +mouse_urxvt		Unix only: Include code for for urxvt mouse handling.
+ * +mouse_urxvt		Unix only: Include code for urxvt mouse handling.
  * +mouse		Any mouse support (any of the above enabled).
  *			Always included, since either FEAT_MOUSE_XTERM or
  *			DOS_MOUSE is defined.
diff --git a/src/gui_haiku.cc b/src/gui_haiku.cc
index 78a444a..6b035a5 100644
--- a/src/gui_haiku.cc
+++ b/src/gui_haiku.cc
@@ -4518,7 +4518,7 @@
 	    //	when we add a BMenu to another Menu, it creates the interconnecting BMenuItem
 	    tmp->AddItem(bmenu);
 
-	    //	Now its safe to query the menu for the associated MenuItem....
+	    //	Now it's safe to query the menu for the associated MenuItem...
 	    menu->id = tmp->FindItem((const char *) menu->dname);
 
 	}
diff --git a/src/if_ole.cpp b/src/if_ole.cpp
index 9dc15fd..f347387 100644
--- a/src/if_ole.cpp
+++ b/src/if_ole.cpp
@@ -334,7 +334,7 @@
     /* Reject strings too long to fit in the input buffer. Allow 10 bytes
      * space to cover for the (remote) possibility that characters may enter
      * the input buffer between now and when the WM_OLE message is actually
-     * processed. If more that 10 characters enter the input buffer in that
+     * processed. If more than 10 characters enter the input buffer in that
      * time, the WM_OLE processing will simply fail to insert the characters.
      */
     if ((int)(STRLEN(str)) > (vim_free_in_input_buf() - 10))
diff --git a/src/logfile.c b/src/logfile.c
index 673468e..999acf0 100644
--- a/src/logfile.c
+++ b/src/logfile.c
@@ -9,7 +9,7 @@
 /*
  * Implements logging.  Originally intended for the channel feature, which is
  * why the "ch_" prefix is used.  Also useful for any kind of low-level and
- * async debuging.
+ * async debugging.
  */
 
 #include "vim.h"
diff --git a/src/os_mac.h b/src/os_mac.h
index 2b5cbe4..17e9478 100644
--- a/src/os_mac.h
+++ b/src/os_mac.h
@@ -28,7 +28,7 @@
  */
 #if defined(__APPLE_CC__) // for Project Builder and ...
 # include <unistd.h>
-// Get stat.h or something similar. Comment: How come some OS get in in vim.h
+// Get stat.h or something similar. Comment: How come some OS get in vim.h
 # include <sys/stat.h>
 // && defined(HAVE_CURSE)
 // The curses.h from MacOS X provides by default some BACKWARD compatibility
diff --git a/src/structs.h b/src/structs.h
index 3c52a63..79c4ac6 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -1993,7 +1993,7 @@
 
 /*
  * Info about an encountered script.
- * When sn_state has the SN_STATE_NOT_LOADED is has not been sourced yet.
+ * When sn_state has SN_STATE_NOT_LOADED, it has not been sourced yet.
  */
 typedef struct
 {
@@ -4780,7 +4780,7 @@
     int		cts_text_prop_count;	// number of text props; when zero
 					// cts_text_props is not used
     textprop_T	*cts_text_props;	// text props (allocated)
-    char	cts_has_prop_with_text; // TRUE if if a property inserts text
+    char	cts_has_prop_with_text; // TRUE if a property inserts text
     int		cts_cur_text_width;     // width of current inserted text
     int		cts_prop_lines;		// nr of properties above or below
     int		cts_first_char;		// width text props above the line
diff --git a/src/termdefs.h b/src/termdefs.h
index 0239965..9f72dc1 100644
--- a/src/termdefs.h
+++ b/src/termdefs.h
@@ -14,8 +14,8 @@
 
 #if defined(SASC) && SASC < 658
 /*
- * The SAS C compiler has a bug that makes typedefs being forgot in include
- * files.  Has been fixed in version 6.58.
+ * The SAS C compiler has a bug that makes typedefs being forgotten
+ * in include files.  Has been fixed in version 6.58.
  */
 typedef unsigned char char_u;
 #endif
diff --git a/src/testdir/test_menu.vim b/src/testdir/test_menu.vim
index 1247359..9929dd5 100644
--- a/src/testdir/test_menu.vim
+++ b/src/testdir/test_menu.vim
@@ -162,7 +162,7 @@
 
 " Test for menu item completion in command line
 func Test_menu_expand()
-  " Create the menu itmes for test
+  " Create the menu items for test
   menu Dummy.Nothing lll
   for i in range(1, 4)
     let m = 'menu Xmenu.A' .. i .. '.A' .. i
diff --git a/src/testdir/test_mswin_event.vim b/src/testdir/test_mswin_event.vim
index e2add3b..4de0169 100644
--- a/src/testdir/test_mswin_event.vim
+++ b/src/testdir/test_mswin_event.vim
@@ -6,7 +6,7 @@
 source mouse.vim
 
 " Helper function for sending a grouped sequence of low level key presses
-" The modifer key(s) can be included as VK Key Codes in the sequence
+" The modifier key(s) can be included as VK Key Codes in the sequence
 " Keydown events will be sent, to to the end of the group, then keyup events
 " will be sent in reverse order to release the keys.
 func SendKeyGroup(keygroup)
@@ -19,7 +19,7 @@
 endfunc
 
 " Send individual key press and release events.
-" the modifers for the key press can be specified in the modifiers arg.
+" the modifiers for the key press can be specified in the modifiers arg.
 func SendKeyWithModifiers(key, modifiers)
   let args = { }
   let args.keycode = a:key
@@ -359,7 +359,7 @@
     " and when the virtual termcap maps the character
     call assert_equal(0, mod_mask, $"key = {kstr}")
 
-    " Send as a single key press with a modifers mask.
+    " Send as a single key press with a modifiers mask.
     let modifiers = 0
     let key = kcodes[0]
     for key in kcodes
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index cd141eb..3d196d9 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -1570,7 +1570,7 @@
   call prop_add(2, 7, {'length': 2, 'type': 'number'})
   call prop_add(3, 6, {'length': 2, 'type': 'number'})
   call prop_add(4, 7, {'length': 2, 'type': 'number'})
-  " The highlighted "is" in line 1, 2 and 4 is kept and ajudsted.
+  " The highlighted "is" in line 1, 2 and 4 is kept and adjusted.
   " The highlighted "is" in line 3 is deleted.
   let expected = [
         \ #{type_bufnr: 0, id: 0, col: 6, end: 1, type: 'number', length: 2, start: 1},
diff --git a/src/version.c b/src/version.c
index 6bbf3d0..792fc8e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1453,
+/**/
     1452,
 /**/
     1451,
