diff --git a/src/README.txt b/src/README.txt
index 2ebbda0..bd93652 100644
--- a/src/README.txt
+++ b/src/README.txt
@@ -138,6 +138,6 @@
 Remember to prevent that gvim forks and the debugger thinks Vim has exited,
 add the "-f" argument.  In gdb: "run -f -g".
 
-When stepping through display updating code, the focus event is triggerred
+When stepping through display updating code, the focus event is triggered
 when going from the debugger to Vim and back.  To avoid this, recompile with
 some code in gui_focus_change() disabled.
diff --git a/src/if_xcmdsrv.c b/src/if_xcmdsrv.c
index 3774ff4..041ed5a 100644
--- a/src/if_xcmdsrv.c
+++ b/src/if_xcmdsrv.c
@@ -1031,8 +1031,8 @@
 }
 
 /*
- * Delete any lingering occurences of window id.  We promise that any
- * occurences is not ours since it is not yet put into the registry (by us)
+ * Delete any lingering occurrence of window id.  We promise that any
+ * occurrence is not ours since it is not yet put into the registry (by us)
  *
  * This is necessary in the following scenario:
  * 1. There is an old windowid for an exit'ed vim in the registry
@@ -1150,7 +1150,7 @@
 }
 
 /*
- * This procedure is invoked by the varous X event loops throughout Vims when
+ * This procedure is invoked by the various X event loops throughout Vims when
  * a property changes on the communication window.  This procedure reads the
  * property and handles command requests and responses.
  */
diff --git a/src/os_vms.c b/src/os_vms.c
index a612d81..297d7f7 100644
--- a/src/os_vms.c
+++ b/src/os_vms.c
@@ -323,7 +323,7 @@
 			 inbuf, nbytes-1, 0, 0, &itmlst, sizeof(itmlst));
     len = strlen(inbuf); /* how many chars we got? */
 
-    /* read immedatelly the rest in the IO queue   */
+    /* read immediately the rest in the IO queue   */
     function = (IO$_READLBLK | IO$M_TIMED | IO$M_ESCAPE | IO$M_NOECHO | IO$M_NOFILTR);
     status = sys$qiow(0, iochan, function, &iosb, 0, 0,
 			 inbuf+len, nbytes-1-len, 0, 0, 0, 0);
@@ -338,7 +338,7 @@
  * We want to save each match for later retrieval.
  *
  * Returns:  1 - continue finding matches
- *	     0 - stop trying to find any further mathces
+ *	     0 - stop trying to find any further matches
  */
     static int
 vms_wproc(char *name, int val)
@@ -347,7 +347,8 @@
     int nlen;
     static int vms_match_alloced = 0;
 
-    if (val != DECC$K_FILE) /* Directories and foreing non VMS files are not counting  */
+    if (val != DECC$K_FILE) /* Directories and foreign non VMS files are not
+			       counting  */
 	return 1;
 
     if (vms_match_num == 0) {
diff --git a/src/xxd/xxd.c b/src/xxd/xxd.c
index 7700ecf..e42b8f7 100644
--- a/src/xxd/xxd.c
+++ b/src/xxd/xxd.c
@@ -5,7 +5,7 @@
  *	    -c option, mls
  * 26.04.94 better option parser, -ps, -l, -s added.
  *  1.07.94 -r badly needs - as input file.  Per default autoskip over
- *	       consequtive lines of zeroes, as unix od does.
+ *	       consecutive lines of zeroes, as unix od does.
  *	    -a shows them too.
  *	    -i dump as c-style #include "file.h"
  *  1.11.95 if "xxd -i" knows the filename, an 'unsigned char filename_bits[]'
@@ -48,7 +48,7 @@
  * 27.10.98 Fixed: -g option parser required blank.
  *	    option -b added: 01000101 binary output in normal format.
  * 16.05.00 Added VAXC changes by Stephen P. Wall
- * 16.05.00 Improved MMS file and merege for VMS by Zoltan Arpadffy
+ * 16.05.00 Improved MMS file and merge for VMS by Zoltan Arpadffy
  *
  * (c) 1990-1998 by Juergen Weigert (jnweiger@informatik.uni-erlangen.de)
  *
@@ -774,7 +774,7 @@
       xxdline(fpo, l, 1);
     }
   else if (autoskip)
-    xxdline(fpo, l, -1);	/* last chance to flush out supressed lines */
+    xxdline(fpo, l, -1);	/* last chance to flush out suppressed lines */
 
   fclose(fp);
   fclose(fpo);
