diff --git a/Makefile b/Makefile
index e088857..65b2642 100644
--- a/Makefile
+++ b/Makefile
@@ -552,7 +552,7 @@
 #
 # INSTALL_MOD_PATH specifies a prefix to MODLIB for module directory
 # relocations required by build roots.  This is not defined in the
-# makefile but the arguement can be passed to make if needed.
+# makefile but the argument can be passed to make if needed.
 #
 
 MODLIB	= $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
diff --git a/coreutils/Config.src b/coreutils/Config.src
index 1bbb91e..1ec3a0a 100644
--- a/coreutils/Config.src
+++ b/coreutils/Config.src
@@ -11,7 +11,7 @@
 	bool "cal"
 	default y
 	help
-	  cal is used to display a monthly calender.
+	  cal is used to display a monthly calendar.
 
 config CATV
 	bool "catv"
diff --git a/coreutils/stat.c b/coreutils/stat.c
index 769fac0..f7fd227 100644
--- a/coreutils/stat.c
+++ b/coreutils/stat.c
@@ -374,7 +374,7 @@
 {
 	/* Create a working copy of the format string */
 	char *format = xstrdup(masterformat);
-	/* Add 2 to accomodate our conversion of the stat '%s' format string
+	/* Add 2 to accommodate our conversion of the stat '%s' format string
 	 * to the printf '%llu' one.  */
 	char *dest = xmalloc(strlen(format) + 2 + 1);
 	char *b;
diff --git a/coreutils/uudecode.c b/coreutils/uudecode.c
index 3f12273..7aa5c67 100644
--- a/coreutils/uudecode.c
+++ b/coreutils/uudecode.c
@@ -46,7 +46,7 @@
 
 		encoded_len = line[0] * 4 / 3;
 		/* Check that line is not too short. (we tolerate
-		 * overly _long_ line to accomodate possible extra '`').
+		 * overly _long_ line to accommodate possible extra '`').
 		 * Empty line case is also caught here. */
 		if (str_len <= encoded_len) {
 			break; /* go to bb_error_msg_and_die("short file"); */
diff --git a/docs/cgi/env.html b/docs/cgi/env.html
index b83c750..66a548b 100644
--- a/docs/cgi/env.html
+++ b/docs/cgi/env.html
@@ -38,7 +38,7 @@
 
 </p><ul>
 <li> <a name="protocol"><code>SERVER_PROTOCOL</code></a> <p>
-    The name and revision of the information protcol this request came
+    The name and revision of the information protocol this request came
     in with. Format: protocol/revision </p><p>
 
 </p></li><li> <code>SERVER_PORT</code>  <p>
diff --git a/e2fsprogs/old_e2fsprogs/blkid/dev.c b/e2fsprogs/old_e2fsprogs/blkid/dev.c
index 260e49c..84b7b0a 100644
--- a/e2fsprogs/old_e2fsprogs/blkid/dev.c
+++ b/e2fsprogs/old_e2fsprogs/blkid/dev.c
@@ -90,7 +90,7 @@
  *
  * These routines do not expose the list.h implementation, which are a
  * contamination of the namespace, and which force us to reveal far, far
- * too much of our internal implemenation.  I'm not convinced I want
+ * too much of our internal implementation.  I'm not convinced I want
  * to keep list.h in the long term, anyway.  It's fine for kernel
  * programming, but performance is not the #1 priority for this
  * library, and I really don't like the tradeoff of type-safety for
diff --git a/e2fsprogs/old_e2fsprogs/blkid/tag.c b/e2fsprogs/old_e2fsprogs/blkid/tag.c
index 7424ede..f10a701 100644
--- a/e2fsprogs/old_e2fsprogs/blkid/tag.c
+++ b/e2fsprogs/old_e2fsprogs/blkid/tag.c
@@ -230,7 +230,7 @@
  *
  * These routines do not expose the list.h implementation, which are a
  * contamination of the namespace, and which force us to reveal far, far
- * too much of our internal implemenation.  I'm not convinced I want
+ * too much of our internal implementation.  I'm not convinced I want
  * to keep list.h in the long term, anyway.  It's fine for kernel
  * programming, but performance is not the #1 priority for this
  * library, and I really don't like the tradeoff of type-safety for
diff --git a/e2fsprogs/old_e2fsprogs/e2fsck.c b/e2fsprogs/old_e2fsprogs/e2fsck.c
index 0799b64..b816c62 100644
--- a/e2fsprogs/old_e2fsprogs/e2fsck.c
+++ b/e2fsprogs/old_e2fsprogs/e2fsck.c
@@ -6381,7 +6381,7 @@
 }
 
 /*
- * This fuction deallocates an inode
+ * This function deallocates an inode
  */
 static void deallocate_inode(e2fsck_t ctx, ext2_ino_t ino, char* block_buf)
 {
@@ -6447,7 +6447,7 @@
 }
 
 /*
- * This fuction clears the htree flag on an inode
+ * This function clears the htree flag on an inode
  */
 static void clear_htree(e2fsck_t ctx, ext2_ino_t ino)
 {
diff --git a/editors/diff.c b/editors/diff.c
index c3ad31b..cf14b1d 100644
--- a/editors/diff.c
+++ b/editors/diff.c
@@ -363,7 +363,7 @@
 }
 
 struct line {
-	/* 'serial' is not used in the begining, so we reuse it
+	/* 'serial' is not used in the beginning, so we reuse it
 	 * to store line offsets, thus reducing memory pressure
 	 */
 	union {
diff --git a/editors/vi.c b/editors/vi.c
index 2e4f7fc..6ce513c 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -501,7 +501,7 @@
 static char *next_line(char *);	// return pointer to next line B-o-l
 static char *end_screen(void);	// get pointer to last char on screen
 static int count_lines(char *, char *);	// count line from start to stop
-static char *find_line(int);	// find begining of line #li
+static char *find_line(int);	// find beginning of line #li
 static char *move_to_col(char *, int);	// move "p" to column l
 static void dot_left(void);	// move dot left- dont leave line
 static void dot_right(void);	// move dot right- dont leave line
@@ -1684,10 +1684,10 @@
 
 static char *prev_line(char *p) // return pointer first char prev line
 {
-	p = begin_line(p);	// goto begining of cur line
+	p = begin_line(p);	// goto beginning of cur line
 	if (p > text && p[-1] == '\n')
 		p--;			// step to prev line
-	p = begin_line(p);	// goto begining of prev line
+	p = begin_line(p);	// goto beginning of prev line
 	return p;
 }
 
@@ -1735,7 +1735,7 @@
 	return cnt;
 }
 
-static char *find_line(int li)	// find begining of line #li
+static char *find_line(int li)	// find beginning of line #li
 {
 	char *q;
 
@@ -3357,7 +3357,7 @@
 			tp = t + 1;
 		}
 
-		// see if there are any changes between vitual screen and out_buf
+		// see if there are any changes between virtual screen and out_buf
 		changed = FALSE;	// assume no change
 		cs = 0;
 		ce = columns - 1;
@@ -3394,7 +3394,7 @@
 		if (cs < 0) cs = 0;
 		if (ce > columns - 1) ce = columns - 1;
 		if (cs > ce) { cs = 0; ce = columns - 1; }
-		// is there a change between vitual screen and out_buf
+		// is there a change between virtual screen and out_buf
 		if (changed) {
 			// copy changed part of buffer to virtual screen
 			memcpy(sp+cs, out_buf+cs, ce-cs+1);
@@ -3844,7 +3844,7 @@
 		}
 		break;
 #endif /* FEATURE_VI_SEARCH */
-	case '0':			// 0- goto begining of line
+	case '0':			// 0- goto beginning of line
 	case '1':			// 1-
 	case '2':			// 2-
 	case '3':			// 3-
diff --git a/findutils/xargs.c b/findutils/xargs.c
index 76c4747..25e47ec 100644
--- a/findutils/xargs.c
+++ b/findutils/xargs.c
@@ -151,7 +151,7 @@
  * is seen, store the address of a new parameter to args[].
  * If reading discovers that last chars do not form the complete
  * parameter, the pointer to the first such "tail character" is returned.
- * (buf has extra byte at the end to accomodate terminating NUL
+ * (buf has extra byte at the end to accommodate terminating NUL
  * of "tail characters" string).
  * Otherwise, the returned pointer points to NUL byte.
  * On entry, buf[] may contain some "seed chars" which are to become
diff --git a/miscutils/less.c b/miscutils/less.c
index 554e546..d5a68d1 100644
--- a/miscutils/less.c
+++ b/miscutils/less.c
@@ -1848,7 +1848,7 @@
         Most options may be changed either on the command line,
         or from within less by using the - or -- command.
         Options may be given in one of two forms: either a single
-        character preceded by a -, or a name preceeded by --.
+        character preceded by a -, or a name preceded by --.
   -?  ........  --help
                   Display help (from command line).
   -a  ........  --search-skip-screen
diff --git a/networking/netstat.c b/networking/netstat.c
index 1303d3f..2196d42 100644
--- a/networking/netstat.c
+++ b/networking/netstat.c
@@ -119,7 +119,7 @@
 #define ADDR_NORMAL_WIDTH        23
 /* When there are IPv6 connections the IPv6 addresses will be
  * truncated to none-recognition. The '-W' option makes the
- * address columns wide enough to accomodate for longest possible
+ * address columns wide enough to accommodate for longest possible
  * IPv6 addresses, i.e. addresses of the form
  * xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:ddd.ddd.ddd.ddd
  */
diff --git a/scripts/basic/docproc.c b/scripts/basic/docproc.c
index 7f21443..720098a 100644
--- a/scripts/basic/docproc.c
+++ b/scripts/basic/docproc.c
@@ -264,7 +264,7 @@
 	vec[idx++] = KERNELDOC;
 	vec[idx++] = DOCBOOK;
 
-	/* Split line up in individual parameters preceeded by FUNCTION */
+	/* Split line up in individual parameters preceded by FUNCTION */
 	for (i=0; line[i]; i++) {
 		if (isspace(line[i])) {
 			line[i] = '\0';
diff --git a/selinux/Config.src b/selinux/Config.src
index 47d15b6..d4701f6 100644
--- a/selinux/Config.src
+++ b/selinux/Config.src
@@ -64,7 +64,7 @@
 	default n
 	depends on SELINUX
 	help
-	  Enable support to run command in speficied security context.
+	  Enable support to run command in specified security context.
 
 config FEATURE_RUNCON_LONG_OPTIONS
 	bool "Enable long options"
diff --git a/shell/hush.c b/shell/hush.c
index f2c0a70..96c739f 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -442,7 +442,7 @@
 	MAYBE_ASSIGNMENT      = 0,
 	DEFINITELY_ASSIGNMENT = 1,
 	NOT_ASSIGNMENT        = 2,
-	/* Not an assigment, but next word may be: "if v=xyz cmd;" */
+	/* Not an assignment, but next word may be: "if v=xyz cmd;" */
 	WORD_IS_KEYWORD       = 3,
 };
 /* Used for initialization: o_string foo = NULL_O_STRING; */
diff --git a/util-linux/mkfs_reiser.c b/util-linux/mkfs_reiser.c
index 13abaa8..56c8f0a 100644
--- a/util-linux/mkfs_reiser.c
+++ b/util-linux/mkfs_reiser.c
@@ -66,7 +66,7 @@
 
 	char s_magic[10];               /* 52 "ReIsErFs" or "ReIsEr2Fs" or "ReIsEr3Fs" */
 	uint16_t sb_fs_state;           /* 62 it is set to used by fsck to mark which phase of rebuilding is done (used for fsck debugging) */
-	uint32_t sb_hash_function_code; /* 64 code of fuction which was/is/will be used to sort names in a directory. See codes in above */
+	uint32_t sb_hash_function_code; /* 64 code of function which was/is/will be used to sort names in a directory. See codes in above */
 	uint16_t sb_tree_height;        /* 68 height of filesytem tree. Tree consisting of only one root block has 2 here */
 	uint16_t sb_bmap_nr;            /* 70 amount of bitmap blocks needed to address each block of file system */
 	uint16_t sb_version;            /* 72 this field is only reliable on filesystem with non-standard journal */
