diff --git a/Makefile.flags b/Makefile.flags
index 3e3a281..c9f32f5 100644
--- a/Makefile.flags
+++ b/Makefile.flags
@@ -117,7 +117,7 @@ ifneq ($(CONFIG_DOWNLOAD),)
 LDLIBS += curl
 endif
 
-# libconfig is alwasy compiled
+# libconfig is always compiled
 ifeq ($(CONFIG_LIBCONFIG),y)
 LDLIBS += config
 endif
diff --git a/README.md b/README.md
index afb5446..a85f033 100644
--- a/README.md
+++ b/README.md
@@ -16,8 +16,8 @@ Examples using this layer with evaluation boards (Beaglebone, RPI3) are provided
 [meta-swupdate-boards](https://layers.openembedded.org/layerindex/branch/master/layer/meta-swupdate-boards/) layer.
 
 It supports the common media on embedded devices 
-such as as NOR / NAND flashes, UBI volumes, SD / eMMC, and can
-be easy extended to introduce project specific update
+such as NOR / NAND flashes, UBI volumes, SD / eMMC, and can
+be easily extended to introduce project specific update
 procedures.
 
 Pre- and postinstall scripts are supported, and a LUA
diff --git a/bootloader/grub.c b/bootloader/grub.c
index fef5a59..70bfef2 100644
--- a/bootloader/grub.c
+++ b/bootloader/grub.c
@@ -130,8 +130,8 @@ static int grubenv_parse_script(struct grubenv_t *grubenv, const char *script)
 	 * We should consider whether we want to replicate U-Boot behavior
 	 * (unset if no value given). GRUB env tool distinguishes unsetting
 	 * (removing) variable from environment and setting variable to an
-	 * empty string (NULL) as two actions. We should think about if if it
-	 * turns oout to be desired
+	 * empty string (NULL) as two actions. We should think about if it
+	 * turns out to be desired
 	 */
 	while ((getline(&line, &len, fp)) != -1) {
 		key = strtok(line, " \t\n");
@@ -163,7 +163,7 @@ static inline void grubenv_update_size(struct grubenv_t *grubenv)
 	int size = 0;
 	struct dict_entry *grubvar;
 
-	/* lenghts of strings + '=' and '\n' characters */
+	/* lengths of strings + '=' and '\n' characters */
 	LIST_FOREACH(grubvar, &grubenv->vars, next) {
 		size = size + strlen(grubvar->varname) +
 						strlen(grubvar->value) + 2;
diff --git a/core/swupdate.c b/core/swupdate.c
index 4c5c902..797ef72 100644
--- a/core/swupdate.c
+++ b/core/swupdate.c
@@ -841,7 +841,7 @@ int main(int argc, char **argv)
 #endif
 
 	/*
-	 * If a aes key is passed, load it to allow
+	 * If an AES key is passed, load it to allow
 	 * to decrypt images
 	 */
 	if (strlen(swcfg.globals.aeskeyfname)) {
diff --git a/core/util.c b/core/util.c
index 30a5ffe..1384a0f 100644
--- a/core/util.c
+++ b/core/util.c
@@ -292,7 +292,7 @@ from_ascii (char const *where, size_t digs, unsigned logbase)
 
 /*
  * Convert a hash as hexa string into a sequence of bytes
- * hash must be a an array of 32 bytes as specified by SHA256
+ * hash must be an array of 32 bytes as specified by SHA256
  */
 static int ascii_to_bin(unsigned char *hash, const char *s, size_t len)
 {
diff --git a/corelib/installer.c b/corelib/installer.c
index f246953..592ada8 100644
--- a/corelib/installer.c
+++ b/corelib/installer.c
@@ -89,7 +89,7 @@ int check_if_required(struct imglist *list, struct filehdr *pfdh,
 	int img_skip = 0;
 
 	/*
-	 * Check that not more as one image wnat to be streamed
+	 * Check that not more than one image want to be streamed
 	 */
 	int install_direct = 0;
 
diff --git a/corelib/lua_interface.c b/corelib/lua_interface.c
index 8e8e077..14557f7 100644
--- a/corelib/lua_interface.c
+++ b/corelib/lua_interface.c
@@ -168,7 +168,7 @@ int run_lua_script(char *script, char *function, char *parms)
 }
 
 /**
- * @brief convert a image description struct to a lua table
+ * @brief convert an image description struct to a lua table
  *
  * @param L [inout] the lua stack
  * @param software [in] the software struct
@@ -317,7 +317,7 @@ static void table2image(lua_State* L, struct img_type *img) {
  * from any lua script in the same context (Stack)
  *
  * @param [in] the lua Stack
- * @return This function returns 0 if successfull and -1 if unsuccessfull.
+ * @return This function returns 0 if successful and -1 if unsuccessful.
  */
 static int l_notify (lua_State *L) {
 	lua_Number status =  luaL_checknumber (L, 1);
@@ -435,7 +435,7 @@ static lua_State *gL = NULL;
  * @param index [in] defines which image have to be installed
  * @param unused [in] unused in this context
  * @param data [in] pointer to the index in the lua registry for the function
- * @return This function returns 0 if successfull and -1 if unsuccessfull.
+ * @return This function returns 0 if successful and -1 if unsuccessful.
  */
 static int l_handler_wrapper(struct img_type *img, void *data) {
 	int res = 0;
diff --git a/debian/changelog b/debian/changelog
index 0b8a3ae..d8040cc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -736,7 +736,7 @@ swupdate (2016.07) stable; urgency=medium
   [ Stefano Babic ]
   * Prepare 2016.07-rc2
   * Fix licensing issue due to cpio
-  * Fix mispelling in usage help
+  * Fix misspelling in usage help
   * Allow filename with the same name into sw-description
   * Enhance output when searching for LUA handlers
 
diff --git a/doc/source/help_and_support.rst b/doc/source/help_and_support.rst
index 197e3f5..3bfa3d8 100644
--- a/doc/source/help_and_support.rst
+++ b/doc/source/help_and_support.rst
@@ -11,7 +11,7 @@ here.
 SWUpdate Flyer
 ==============
 
-A short description about the project and the features (in english and german)
+A short description about the project and the features (in English and German)
 can be found in the `flyer <http://www.denx.de/en/pub/Software/WebHome/we-update.pdf>`_
 
 
diff --git a/doc/source/overview.rst b/doc/source/overview.rst
index 7af4a23..b651880 100644
--- a/doc/source/overview.rst
+++ b/doc/source/overview.rst
@@ -6,7 +6,7 @@ Embedded Systems become more and more complex,
 and their software reflects the augmented complexity.
 New features and fixes let much more as desirable that
 the software on an embedded system can be updated
-in a absolutely reliable way.
+in an absolutely reliable way.
 
 On a Linux-based system, we can find in most cases
 the following elements:
diff --git a/doc/source/roadmap.rst b/doc/source/roadmap.rst
index 07fbe3a..3bd8a40 100644
--- a/doc/source/roadmap.rst
+++ b/doc/source/roadmap.rst
@@ -47,7 +47,7 @@ more vulnerable.
 There are two major aspects to be considered for binary deltas
 that must be investigated:
 
-- which is the reference ? A delta means there is a untouched copy
+- which is the reference ? A delta means there is an untouched copy
   of the software that can be used as base. It must be verified
   that this copy is not corrupted or changed after its delivery
   and it is suitable for an update. Nevertheless, it should be
diff --git a/doc/source/signed_images.rst b/doc/source/signed_images.rst
index 611ba02..debbb7f 100644
--- a/doc/source/signed_images.rst
+++ b/doc/source/signed_images.rst
@@ -41,10 +41,10 @@ only sw-description generated by a verified source can be accepted by
 the installer. sw-description contains hashes for each sub-image to
 verify that each delivered sub-image really belongs to the release.
 
-Choose of algorithm
+Choice of algorithm
 -------------------
 
-The algorithm choosen to sign and verify the sw-descrription file can be
+The algorithm chosen to sign and verify the sw-descrription file can be
 selected via menuconfig. Currently, the following mechanisms are implemented:
 
 - RSA Public / private key. The private key belongs to thebuildsystem,
diff --git a/doc/source/swupdate.rst b/doc/source/swupdate.rst
index b275808..138e0c4 100644
--- a/doc/source/swupdate.rst
+++ b/doc/source/swupdate.rst
@@ -23,7 +23,7 @@ the updating process reports only the status to the operator
 The output can be displayed on a LCD using the frame-buffer
 device or directed to a serial line (Linux console).
 
-It is generally used in the single copy approach, running in a initrd
+It is generally used in the single copy approach, running in an initrd
 (recipes are provided to generate with Yocto).  However, it is
 possible to use it in a double-copy approach by use of :ref:`collections`.
 
@@ -42,7 +42,7 @@ General Overview
 - Install on embedded Media (eMMC, SD, Raw NAND,
   NOR and SPI-NOR flashes)
 
-- check if a image is available. The image is built
+- check if an image is available. The image is built
   in a specified format (cpio) and it must contain
   a file describing the software that must be updated.
 
@@ -238,7 +238,7 @@ Firstly, clone meta-SWUpdate.
 Add meta-SWUpdate as usual to your bblayers.conf. You have also
 to add meta-oe to the list.
 
-In meta-SWUpdate there is a recipe to generate a initrd with a
+In meta-SWUpdate there is a recipe to generate an initrd with a
 rescue system with SWUpdate. Use:
 
 ::
@@ -246,7 +246,7 @@ rescue system with SWUpdate. Use:
 	MACHINE=<your machine> bitbake swupdate-image
 
 You will find the result in your tmp/deploy/<your machine> directory.
-How to install and start a initrd is very target specific - please
+How to install and start an initrd is very target specific - please
 check in the documentation of your bootloader.
 
 What about libubootenv ?
@@ -255,13 +255,13 @@ What about libubootenv ?
 This is a common issue when SWUpdate is built. SWUpdate depends on this library,
 that is generated from the U-Boot's sources. This library allows to safe modify
 the U-Boot environment. It is not required if U-Boot is not used as bootloader.
-If SWUpdate cannot be linked, you are using a old version of U-Boot (you need
+If SWUpdate cannot be linked, you are using an old version of U-Boot (you need
 at least 2016.05). If this is the case, you can add your own recipe for
 the package u-boot-fw-utils, adding the code for the library.
 
 It is important that the package u-boot-fw-utils is built with the same
 sources of the bootloader and for the same machine. In fact, the target
-cna have a default environment linked together with U-Boot's code,
+can have a default environment linked together with U-Boot's code,
 and it is not (yet) stored into a storage. SWUpdate should be aware of
 it, because it cannot read it: the default environment must be linked
 as well to SWUpdate's code. This is done inside the libubootenv.
diff --git a/examples/configuration/swupdate.cfg b/examples/configuration/swupdate.cfg
index 18cba34..f9366fd 100644
--- a/examples/configuration/swupdate.cfg
+++ b/examples/configuration/swupdate.cfg
@@ -98,9 +98,9 @@ identify : (
 #			  number of retries to connect to server
 # retrywait		: integer
 # sslkey		: string
-#			  path the the file containing the key for ssl connection
+#			  path of the file containing the key for ssl connection
 # sslcert		: string
-#			  path the the file containing the certificate for SSL connection
+#			  path of the file containing the certificate for SSL connection
 # proxy			: string
 #			  in case the server is reached via a proxy
 
diff --git a/handlers/Config.in b/handlers/Config.in
index 86a78ef..0ade61a 100644
--- a/handlers/Config.in
+++ b/handlers/Config.in
@@ -78,7 +78,7 @@ config CFIHAMMING1
 	  the ECC with 1 bit Hamming Code and saving it into OOB
 	  (assumes sector size of 512 and page size of 2048).
 
-	  You do not need this if you have not a OMAP SOC.
+	  You do not need this if you do not have an OMAP SoC.
 
 config RAW
 	bool "raw"
diff --git a/include/bsdqueue.h b/include/bsdqueue.h
index 99d01a5..2c808a1 100644
--- a/include/bsdqueue.h
+++ b/include/bsdqueue.h
@@ -664,7 +664,7 @@ struct {								\
  */
 
 /*
- * __launder_type():  We use this ugly hack to work around the the compiler
+ * __launder_type():  We use this ugly hack to work around the compiler
  * noticing that two types may not alias each other and elide tests in code.
  * We hit this in the CIRCLEQ macros when comparing 'struct name *' and
  * 'struct type *' (see CIRCLEQ_HEAD()).  Modern compilers (such as GCC
diff --git a/ipc/network_ipc.c b/ipc/network_ipc.c
index 483b5ab..3d4c730 100644
--- a/ipc/network_ipc.c
+++ b/ipc/network_ipc.c
@@ -313,7 +313,7 @@ static void *swupdate_async_thread(void *data)
 	handle = 0;
 
 	if (sigtimedwait(&sigpipe_mask, 0, &zerotime) == -1) {
-		// curently ignored
+		// currently ignored
 	}
 
 	if (pthread_sigmask(SIG_SETMASK, &saved_mask, 0) == -1) {
diff --git a/mongoose/mongoose.c b/mongoose/mongoose.c
index d1404ff..75bca06 100644
--- a/mongoose/mongoose.c
+++ b/mongoose/mongoose.c
@@ -4103,7 +4103,7 @@ static int lsp_mod_include(lua_State *L) {
   struct mg_connection *conn = lua_touserdata(L, lua_upvalueindex(1));
   struct file file = STRUCT_FILE_INITIALIZER;
   if (handle_lsp_request(conn, lua_tostring(L, -1), &file, L)) {
-    // handle_lsp_request returned an error code, meaning an error occured in
+    // handle_lsp_request returned an error code, meaning an error occurred in
     // the included page and mg.onerror returned non-zero. Stop processing.
     lsp_abort(L);
   }
@@ -5230,7 +5230,7 @@ static void *master_thread(void *thread_func_param) {
     if (poll(pfd, ctx->num_listening_sockets, 200) > 0) {
       for (i = 0; i < ctx->num_listening_sockets; i++) {
         // NOTE(lsm): on QNX, poll() returns POLLRDNORM after the
-        // successfull poll, and POLLIN is defined as (POLLRDNORM | POLLRDBAND)
+        // successful poll, and POLLIN is defined as (POLLRDNORM | POLLRDBAND)
         // Therefore, we're checking pfd[i].revents & POLLIN, not
         // pfd[i].revents == POLLIN.
         if (ctx->stop_flag == 0 && (pfd[i].revents & POLLIN)) {
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index b635171..dd9e12d 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -238,7 +238,7 @@ set_if_default_or_unset = $(if $(filter default undefined,$(origin $(1))),   \
         $(eval $(1) = $(2)) )
 
 ###
-# why - tell why a a target got build
+# why - tell why a target got build
 #       enabled by make V=2
 #       Output (listed in the order they are checked):
 #          (1) - due to target is PHONY
diff --git a/scripts/acceptance-tests/CheckImage.mk b/scripts/acceptance-tests/CheckImage.mk
index 1559947..cd8b324 100644
--- a/scripts/acceptance-tests/CheckImage.mk
+++ b/scripts/acceptance-tests/CheckImage.mk
@@ -16,7 +16,7 @@
 # Foundation, Inc.
 
 #
-# test commands for --check comand-line option
+# test commands for --check command-line option
 #
 SWU_CHECK = ./swupdate -l 5 -c $(if $(strip $(filter-out FORCE,$<)),-i $<) >/dev/null 2>&1
 
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 50a87ed..8f604f3 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -1108,7 +1108,7 @@ void set_all_choice_values(struct symbol *csym)
 	prop = sym_get_choice_prop(csym);
 
 	/*
-	 * Set all non-assinged choice values to no
+	 * Set all non-assigned choice values to no
 	 */
 	expr_list_for_each_sym(prop->expr, e, sym) {
 		if (!sym_has_value(sym))
diff --git a/scripts/kconfig/lxdialog/util.c b/scripts/kconfig/lxdialog/util.c
index f7abdeb..2a0d182 100644
--- a/scripts/kconfig/lxdialog/util.c
+++ b/scripts/kconfig/lxdialog/util.c
@@ -376,7 +376,7 @@ void print_title(WINDOW *dialog, const char *title, int width)
 /*
  * Print a string of text in a window, automatically wrap around to the
  * next line if the string is too long to fit on one line. Newline
- * characters '\n' are propperly processed.  We start on a new line
+ * characters '\n' are properly processed.  We start on a new line
  * if there is no room for at least 4 nonblanks following a double-space.
  */
 void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x)
diff --git a/scripts/kconfig/streamline_config.pl b/scripts/kconfig/streamline_config.pl
index 9cb8522..ef10454 100644
--- a/scripts/kconfig/streamline_config.pl
+++ b/scripts/kconfig/streamline_config.pl
@@ -480,7 +480,7 @@ sub parse_config_depends
 # The idea is we look at all the configs that select it. If one
 # is already in our list of configs to enable, then there's nothing
 # else to do. If there isn't, we pick the first config that was
-# enabled in the orignal config and use that.
+# enabled in the original config and use that.
 sub parse_config_selects
 {
     my ($config, $p) = @_;
diff --git a/suricatta/channel_hawkbit.c b/suricatta/channel_hawkbit.c
index 514bccc..cc30cb9 100644
--- a/suricatta/channel_hawkbit.c
+++ b/suricatta/channel_hawkbit.c
@@ -854,7 +854,7 @@ channel_op_res_t channel_get(channel_t *this, void *data)
 
 	output_data_t chunk = {.memory = NULL, .size = 0};
 	if ((chunk.memory = malloc(1)) == NULL) {
-		ERROR("Channel buffer reservation failed with with OOM.\n");
+		ERROR("Channel buffer reservation failed with OOM.\n");
 		result = CHANNEL_ENOMEM;
 		goto cleanup_header;
 	}
