diff --git a/CMakeLists.txt b/CMakeLists.txt
index 351e38d0cc916176f6b1fb82afebe8a16eb5fab5..ccf4e91702ebe2ea74ef7316f8b16f9ed9af919e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -576,7 +576,7 @@ IF(KWSYS_USE_SystemInformation)
     CHECK_INCLUDE_FILE_CXX("execinfo.h" KWSYS_CXX_HAS_EXECINFOH)
     IF (KWSYS_CXX_HAS_EXECINFOH)
       # we have the backtrace header check if it
-      # can be used  with this compiler
+      # can be used with this compiler
       SET(KWSYS_PLATFORM_CXX_TEST_LINK_LIBRARIES ${EXECINFO_LIB})
       KWSYS_PLATFORM_CXX_TEST(KWSYS_CXX_HAS_BACKTRACE
          "Checking whether backtrace works with this C++ compiler" DIRECT)
diff --git a/DynamicLoader.cxx b/DynamicLoader.cxx
index 664f183c3cab90fe00da1bdb70c5784fde698f96..9b7d9bfc76d69062bc506d582b3537e7929b9004 100644
--- a/DynamicLoader.cxx
+++ b/DynamicLoader.cxx
@@ -60,7 +60,7 @@ const char* DynamicLoader::LastError()
 } // namespace KWSYS_NAMESPACE
 
 #elif defined(__hpux)
-// Implementation for HPUX  machines
+// Implementation for HPUX machines
 #include <dl.h>
 #include <errno.h>
 
diff --git a/Glob.cxx b/Glob.cxx
index d2f0b8516664c7edb9a4bfa62c0ef71cdf06017a..64962cdbdfdb53529d17bed29026595160e98267 100644
--- a/Glob.cxx
+++ b/Glob.cxx
@@ -81,13 +81,13 @@ std::string Glob::PatternToRegex(const std::string& pattern,
     int c = *i;
     if (c == '*') {
       // A '*' (not between brackets) matches any string.
-      // We modify this to not match slashes since the orignal glob
+      // We modify this to not match slashes since the original glob
       // pattern documentation was meant for matching file name
       // components separated by slashes.
       regex += "[^/]*";
     } else if (c == '?') {
       // A '?' (not between brackets) matches any single character.
-      // We modify this to not match slashes since the orignal glob
+      // We modify this to not match slashes since the original glob
       // pattern documentation was meant for matching file name
       // components separated by slashes.
       regex += "[^/]";
diff --git a/ProcessUNIX.c b/ProcessUNIX.c
index 718a1aaef7c951e1e4000725f33032de849d2f6e..1e80b39cbac0b61369a16cfd6c9b8b601a0c42fe 100644
--- a/ProcessUNIX.c
+++ b/ProcessUNIX.c
@@ -231,7 +231,7 @@ struct kwsysProcess_s
      when reaping PIDs or modifying this array to avoid race conditions.  */
   volatile pid_t* volatile ForkPIDs;
 
-  /* Flag for whether the children were terminated by a faild select.  */
+  /* Flag for whether the children were terminated by a failed select.  */
   int SelectError;
 
   /* The timeout length.  */
diff --git a/RegularExpression.cxx b/RegularExpression.cxx
index fa3551c080e64a0aefc9123e498c03840ff6765d..ed517e26b2c959436fae0fbbc81158b5b93769b2 100644
--- a/RegularExpression.cxx
+++ b/RegularExpression.cxx
@@ -43,7 +43,7 @@ RegularExpression::RegularExpression(const RegularExpression& rxp)
   int ind;
   this->progsize = rxp.progsize;            // Copy regular expression size
   this->program = new char[this->progsize]; // Allocate storage
-  for (ind = this->progsize; ind-- != 0;)   // Copy regular expresion
+  for (ind = this->progsize; ind-- != 0;)   // Copy regular expression
     this->program[ind] = rxp.program[ind];
   // Copy pointers into last successful "find" operation
   this->regmatch = rxp.regmatch;
@@ -76,7 +76,7 @@ RegularExpression& RegularExpression::operator=(const RegularExpression& rxp)
   this->progsize = rxp.progsize; // Copy regular expression size
   delete[] this->program;
   this->program = new char[this->progsize]; // Allocate storage
-  for (ind = this->progsize; ind-- != 0;)   // Copy regular expresion
+  for (ind = this->progsize; ind-- != 0;)   // Copy regular expression
     this->program[ind] = rxp.program[ind];
   // Copy pointers into last successful "find" operation
   this->regmatch = rxp.regmatch;
@@ -128,8 +128,8 @@ bool RegularExpression::deep_equal(const RegularExpression& rxp) const
           this->regmatch.end() == rxp.regmatch.end());
 }
 
-// The remaining code in this file is derived from the  regular expression code
-// whose  copyright statement appears  below.  It has been  changed to work
+// The remaining code in this file is derived from the regular expression code
+// whose copyright statement appears below.  It has been changed to work
 // with the class concepts of C++ and COOL.
 
 /*
diff --git a/RegularExpression.hxx.in b/RegularExpression.hxx.in
index a3fe72df873298eca3e424544f9218c6431d6937..3cbbeb8b6fcdd435a2e69a914d39c43e79dfcd93 100644
--- a/RegularExpression.hxx.in
+++ b/RegularExpression.hxx.in
@@ -202,7 +202,7 @@ inline std::string RegularExpressionMatch::match(int n) const
  *
  *  ?        Matches preceding pattern zero or once only
  *
- * ()        Saves a matched expression and uses it in a  later match
+ * ()        Saves a matched expression and uses it in a later match
  *
  * Note that more than one of these metacharacters can be  used
  * in  a  single  regular expression in order to create complex
diff --git a/SystemInformation.cxx b/SystemInformation.cxx
index ab1f40a2ee5d38d7a76ebc265fe7d598dec2cc2d..8d148d87a78b14c2f7a9f26abc3ff8f2edd249c1 100644
--- a/SystemInformation.cxx
+++ b/SystemInformation.cxx
@@ -1649,7 +1649,7 @@ int SystemInformationImplementation::GetFullyQualifiedDomainName(
   // any number of interfaces on this system we look for the
   // first of these that contains the name returned by gethostname
   // and is longer. failing that we return gethostname and indicate
-  // with a failure code. Return of a failure code is not necessarilly
+  // with a failure code. Return of a failure code is not necessarily
   // an indication of an error. for instance gethostname may return
   // the fully qualified domain name, or there may not be one if the
   // system lives on a private network such as in the case of a cluster
diff --git a/SystemInformation.hxx.in b/SystemInformation.hxx.in
index 5678e8a10b1aeaeecd9fb93fddd4efa84c6bd010..de222328b4004ac61ed871d8d07ade1de0146090 100644
--- a/SystemInformation.hxx.in
+++ b/SystemInformation.hxx.in
@@ -110,7 +110,7 @@ public:
   size_t GetAvailablePhysicalMemory();
 
   // returns an informative general description if the installed and
-  // available ram on this system. See the  GetHostMmeoryTotal, and
+  // available ram on this system. See the GetHostMemoryTotal, and
   // Get{Host,Proc}MemoryAvailable methods for more information.
   std::string GetMemoryDescription(const char* hostLimitEnvVarName = NULL,
                                    const char* procLimitEnvVarName = NULL);
diff --git a/SystemTools.cxx b/SystemTools.cxx
index f5473628e7b26461042b7d0eab6fad5e05d718b8..ad8b02d33bc8338fc85ce3722d5a5911db3e09c0 100644
--- a/SystemTools.cxx
+++ b/SystemTools.cxx
@@ -1072,7 +1072,7 @@ bool SystemTools::WriteRegistryValue(const std::string&, const std::string&,
 //      HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.1\InstallPath
 //      =>  will delete the data of the "default" value of the key
 //      HKEY_LOCAL_MACHINE\SOFTWARE\Scriptics\Tcl\8.4;Root
-//      =>  will delete  the data of the "Root" value of the key
+//      =>  will delete the data of the "Root" value of the key
 
 #if defined(_WIN32) && !defined(__CYGWIN__)
 bool SystemTools::DeleteRegistryValue(const std::string& key, KeyWOW64 view)
diff --git a/SystemTools.hxx.in b/SystemTools.hxx.in
index 8a02b7538f29ecba1956f4f81fcad33a65063df1..719d45c0577db0490ce38ee3a1c2ecb9385bcf76 100644
--- a/SystemTools.hxx.in
+++ b/SystemTools.hxx.in
@@ -881,7 +881,7 @@ public:
 
   /**
    * Get the width of the terminal window. The code may or may not work, so
-   * make sure you have some resonable defaults prepared if the code returns
+   * make sure you have some reasonable defaults prepared if the code returns
    * some bogus size.
    */
   static int GetTerminalWidth();