diff --git a/doc/man/knot.conf.5in b/doc/man/knot.conf.5in
index 72634ca847f0322230b1e5c3dccf326b1f9e7902..b57dad4a70f0c0fab095e9ef231336619f7a2f21 100644
--- a/doc/man/knot.conf.5in
+++ b/doc/man/knot.conf.5in
@@ -103,8 +103,8 @@ to enclose such value within double quotes \fB"\fP \fB"\fP\&.
 .SH COMMENTS
 .sp
 A comment begins with a \fB#\fP character and is ignored during processing.
-Also each configuration section or sequence block allows to specify permanent
-comment using \fBcomment\fP item which is stored in the server beside the
+Also each configuration section or sequence block allows a permanent
+comment using the \fBcomment\fP item which is stored in the server beside the
 configuration.
 .SH INCLUDES
 .sp
@@ -651,7 +651,7 @@ can be appended to the address using \fB@\fP separator.
 \fIDefault:\fP not set
 .SS key
 .sp
-A \fI\%reference\fP to the TSIG key which ise used to autenticate
+A \fI\%reference\fP to the TSIG key which ise used to authenticate
 the communication with the remote server.
 .sp
 \fIDefault:\fP not set
diff --git a/doc/reference.rst b/doc/reference.rst
index 0b3fc56f326aebc3bc5783a6e8bee2f1bd7ef6a3..d72324dee506bc978d29cc154132869d962463c1 100644
--- a/doc/reference.rst
+++ b/doc/reference.rst
@@ -56,8 +56,8 @@ Comments
 ========
 
 A comment begins with a ``#`` character and is ignored during processing.
-Also each configuration section or sequence block allows to specify permanent
-comment using ``comment`` item which is stored in the server beside the
+Also each configuration section or sequence block allows a permanent
+comment using the ``comment`` item which is stored in the server beside the
 configuration.
 
 .. _Includes:
diff --git a/src/dnssec/doc/coding.md b/src/dnssec/doc/coding.md
index bc7240d7b6787b5247ecdc71eeb9be3275e4cc87..2d679b8a0570bd7dc92a660f44885cb712bc6beb 100644
--- a/src/dnssec/doc/coding.md
+++ b/src/dnssec/doc/coding.md
@@ -3,7 +3,7 @@
 ## Components Location
 
 - library: `lib` (public headers in `lib/dnssec`)
-- shared: `shared` (shared code for library and utilities, inaccesible from the library)
+- shared: `shared` (shared code for library and utilities, inaccessible from the library)
 - tests: `tests`
 - utilities: `utils`
 
diff --git a/src/dnssec/lib/dnssec/keystore.h b/src/dnssec/lib/dnssec/keystore.h
index 118af1200f5da3fd02663a2212cb1d4c380672b5..67240b23c3cde5d4cb1dcfaba392f858ef4ab242 100644
--- a/src/dnssec/lib/dnssec/keystore.h
+++ b/src/dnssec/lib/dnssec/keystore.h
@@ -27,7 +27,7 @@
  *
  * PKCS #8 uses unencrypted PEM, and allows implementation of custom stores.
  *
- * PKCS #11 allows to access Hardware Security Modules.
+ * PKCS #11 provides access Hardware Security Modules.
  *
  * Example of using default PKCS #8 and to generate an RSA key:
  *
diff --git a/src/dnssec/lib/error.c b/src/dnssec/lib/error.c
index 4a4cc0600833da668202dc8fae805cba8013335c..796e7f03d627aab78c4524daa78a29b275bc1e40 100644
--- a/src/dnssec/lib/error.c
+++ b/src/dnssec/lib/error.c
@@ -32,7 +32,7 @@ static const error_message_t ERROR_MESSAGES[] = {
 	{ DNSSEC_ENOENT,		"no such file or directory" },
 
 	{ DNSSEC_ERROR,			"unspecified error" },
-	{ DNSSEC_NOT_IMPLEMENTED_ERROR,	"not implemeted" },
+	{ DNSSEC_NOT_IMPLEMENTED_ERROR,	"not implemented" },
 	{ DNSSEC_MALFORMED_DATA,	"malformed data" },
 	{ DNSSEC_OUT_OF_RANGE,		"value out of range" },
 	{ DNSSEC_NOT_FOUND,		"not found" },
diff --git a/src/dnssec/lib/kasp/dir/json.c b/src/dnssec/lib/kasp/dir/json.c
index a9f35c5c464dd6dfd34feddbc824c47519bb4394..3b2411a5e335ac4d100511e05ddd213ba2924c93 100644
--- a/src/dnssec/lib/kasp/dir/json.c
+++ b/src/dnssec/lib/kasp/dir/json.c
@@ -73,7 +73,7 @@ int encode_keyid(const void *value, json_t **result)
 }
 
 /*!
- * Decode bounded interger value from JSON.
+ * Decode bounded integer value from JSON.
  */
 static int decode_int(const json_int_t min, const json_int_t max,
 		      const json_t *value, json_int_t *result)
diff --git a/src/knot/nameserver/nsec_proofs.c b/src/knot/nameserver/nsec_proofs.c
index 3edcbf2de2f3e51776709d3846c411e19a537942..880dc3620b19f846dd4da6d92877a3e0f32d4d96 100644
--- a/src/knot/nameserver/nsec_proofs.c
+++ b/src/knot/nameserver/nsec_proofs.c
@@ -439,7 +439,7 @@ static int put_nsec_nxdomain(const zone_contents_t *zone,
 /*!
  * \brief Put NSEC3s for NXDOMAIN error into the response.
  *
- * Adds up to three NSEC3 records. We have to proove that some parent name
+ * Adds up to three NSEC3 records. We have to prove that some parent name
  * exists (closest encloser proof) and that no wildcard expansion is possible
  * bellow that closest encloser.
  *
diff --git a/src/knot/zone/zone-dump.c b/src/knot/zone/zone-dump.c
index 49e3612ca41ea0e26a933d054b973afbfbf9beac..6d37c6b1a5fb636f2ade6d5d8c536f39be1fbefe 100644
--- a/src/knot/zone/zone-dump.c
+++ b/src/knot/zone/zone-dump.c
@@ -204,7 +204,7 @@ int zone_dump_text(zone_contents_t *zone, FILE *file)
 		}
 	}
 
-	// Create formated date-time string.
+	// Create formatted date-time string.
 	time_t now = time(NULL);
 	struct tm tm;
 	localtime_r(&now, &tm);
diff --git a/src/libknot/rrtype/opt.h b/src/libknot/rrtype/opt.h
index a8845aaf180333c3dbbe07966e615daf29afc5bd..e87e70c6d29aef08adf0c397f3ce2427f08e42b4 100644
--- a/src/libknot/rrtype/opt.h
+++ b/src/libknot/rrtype/opt.h
@@ -411,7 +411,7 @@ size_t knot_edns_client_subnet_size(const knot_edns_client_subnet_t *ecs);
  * \param option_len  EDNS option data buffer size.
  * \param ecs         EDNS Client Subnet data.
  *
- * \return Error code, KNOT_EOK if sucessful.
+ * \return Error code, KNOT_EOK if successful.
  */
 int knot_edns_client_subnet_write(uint8_t *option, size_t option_len,
                                   const knot_edns_client_subnet_t *ecs);
@@ -423,7 +423,7 @@ int knot_edns_client_subnet_write(uint8_t *option, size_t option_len,
  * \param[in]  option      EDNS option data.
  * \param[in]  option_len  EDNS option size.
  *
- * \return Error code, KNOT_EOK if sucessful.
+ * \return Error code, KNOT_EOK if successful.
  */
 int knot_edns_client_subnet_parse(knot_edns_client_subnet_t *ecs,
                                   const uint8_t *option, size_t option_len);
@@ -434,7 +434,7 @@ int knot_edns_client_subnet_parse(knot_edns_client_subnet_t *ecs,
  * \param ecs   ECS structure to set address into.
  * \param addr  Address to be set.
  *
- * \return Error code. KNOT_EOK if succesful.
+ * \return Error code. KNOT_EOK if successful.
  */
 int knot_edns_client_subnet_set_addr(knot_edns_client_subnet_t *ecs,
                                      const struct sockaddr_storage *addr);
diff --git a/src/libknot/tsig-op.h b/src/libknot/tsig-op.h
index 4826d7273e0fdcd261e2b807f3db41036cad1f58..190e96f649ec54049c3abf48426079d305961eed 100644
--- a/src/libknot/tsig-op.h
+++ b/src/libknot/tsig-op.h
@@ -38,7 +38,7 @@
  * the message size.
  *
  * \note This function does not save the new digest to the 'digest' parameter
- *       unless everything went OK. This allows to sent the same buffer to
+ *       unless everything went OK. This allows sending the same buffer to
  *       the 'request_mac' and 'digest' parameters.
  *
  * \param msg Message to be signed.
@@ -72,7 +72,7 @@ int knot_tsig_sign(uint8_t *msg, size_t *msg_len, size_t msg_max_len,
  * the message size.
  *
  * \note This function does not save the new digest to the 'digest' parameter
- *       unless everything went OK. This allows to sent the same buffer to
+ *       unless everything went OK. This allows sending the same buffer to
  *       the 'request_mac' and 'digest' parameters.
  *
  * \param msg Message to be signed.
diff --git a/src/utils/common/exec.c b/src/utils/common/exec.c
index 1a8713211da9de6ff9cc773e5a288ea78935cbcc..60a8dad362e5556f9db382ccdb70c690103d74c0 100644
--- a/src/utils/common/exec.c
+++ b/src/utils/common/exec.c
@@ -143,7 +143,7 @@ static void print_footer(const size_t total_len,
 		exec_time = time(NULL);
 	}
 
-	// Create formated date-time string.
+	// Create formatted date-time string.
 	localtime_r(&exec_time, &tm);
 	strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S %Z", &tm);
 
diff --git a/src/utils/common/params.h b/src/utils/common/params.h
index 2cb667003bdc4750ea10804579efc943a0560c00..d09549b0f9c05cae8a4c58bfa03e328d7497111f 100644
--- a/src/utils/common/params.h
+++ b/src/utils/common/params.h
@@ -133,7 +133,7 @@ char *name_from_idn(const char *idn_name);
 /*!
  * \brief Transforms ASCII punycode to localized IDN string.
  *
- * If an error occures or IDN support is missing, this function does nothing.
+ * If an error occurs or IDN support is missing, this function does nothing.
  *
  * \param idn_name	ASCII name to transform and replace with IDN name.
  */
diff --git a/src/utils/keymgr/cmdparse/parameter.c b/src/utils/keymgr/cmdparse/parameter.c
index 94425fd0a0188cbb3db472cdbc8fdda65c054b84..350e173b8be65b05009705086d233de367bfe94d 100644
--- a/src/utils/keymgr/cmdparse/parameter.c
+++ b/src/utils/keymgr/cmdparse/parameter.c
@@ -41,7 +41,7 @@ static const parameter_t *param_match(const parameter_t *params, const char *sea
 		}
 
 		if (match) {
-			error("Ambigious parameter '%s' ('%s' or '%s').",
+			error("Ambiguous parameter '%s' ('%s' or '%s').",
 			      search, match->name, p->name);
 			return NULL;
 		}
diff --git a/src/utils/kzonecheck/main.c b/src/utils/kzonecheck/main.c
index e350405f7529eafb4b7ed17ed2d2e3e1f4d0febf..97224bb1b8ad7271578563c6420af89b90496a3d 100644
--- a/src/utils/kzonecheck/main.c
+++ b/src/utils/kzonecheck/main.c
@@ -117,7 +117,7 @@ int main(int argc, char *argv[])
 	switch (ret) {
 	case KNOT_EOK:
 		if (verbose) {
-			fprintf(outfile, "No sematic error found.\n");
+			fprintf(outfile, "No semantic error found.\n");
 		}
 		return EXIT_SUCCESS;
 	case KNOT_ESEMCHECK:
diff --git a/src/zscanner/scanner.h b/src/zscanner/scanner.h
index 361f4da21ff2ab4f5401838d39d44dbcf7bf829f..e1db73f172a776685b87ffbd49e3760c51a5c34b 100644
--- a/src/zscanner/scanner.h
+++ b/src/zscanner/scanner.h
@@ -361,7 +361,7 @@ int zs_parse_record(
  * \brief Launches automatic parsing of the whole input.
  *
  * For each correctly recognized record, the record callback is executed.
- * If any syntax error occures, the error callback is executed.
+ * If any syntax error occurs, the error callback is executed.
  *
  * \note Error code and other information are stored in the scanner context.
  *
diff --git a/tests-extra/tests/axfr/failover/test.py b/tests-extra/tests/axfr/failover/test.py
index a108aff351863ec821d7ff8bb7a762f4fb23bff6..49cac55aa8e8bd3dfdb03998ba48212b8aabece4 100644
--- a/tests-extra/tests/axfr/failover/test.py
+++ b/tests-extra/tests/axfr/failover/test.py
@@ -24,7 +24,7 @@ master1 = t.server("knot")
 master2 = t.server("bind")
 slave = t.server("knot")
 
-# flush zones immediatelly
+# flush zones immediately
 for server in [master1, master2, slave]:
     slave.zonefile_sync = "0"
 
diff --git a/tests-extra/tests/modules/rosedb/test.py b/tests-extra/tests/modules/rosedb/test.py
index 2b3775190ff67c4b2633c164c0dd1a6c5f3d12cb..b3a4add728bef034ed52a5c2dd2abd2010a659df 100644
--- a/tests-extra/tests/modules/rosedb/test.py
+++ b/tests-extra/tests/modules/rosedb/test.py
@@ -48,7 +48,7 @@ resp = knot.dig("mail6.example.com", "A")
 resp.check(rcode="NOERROR", noflags="AA")
 compare(resp.count(), 0, "A count")
 
-# Add autority information.
+# Add authority information.
 module.add_record("example.net",     "SOA", "1", "ns1 host 1 3600 60 3600 3600")
 module.add_record("example.net",     "NS",  "2", "ns1.example.net")
 module.add_record("ns1.example.net", "A",   "3", "127.0.0.2")