diff --git a/src/cache.c b/src/cache.c
index a833c04..705ed44 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -77,7 +77,7 @@
 
 struct vary_hashing_information {
 	struct ist hdr_name;                 /* Header name */
-	enum vary_header_bit value;          /* Bit repesenting the header in a vary signature */
+	enum vary_header_bit value;          /* Bit representing the header in a vary signature */
 	unsigned int hash_length;            /* Size of the sub hash for this header's value */
 	http_header_normalizer norm_fn;      /* Normalization function */
 };
@@ -839,7 +839,7 @@
 
 /*
  * Checks the vary header's value. The headers on which vary should be applied
- * must be explicitely supported in the vary_information array (see cache.c). If
+ * must be explicitly supported in the vary_information array (see cache.c). If
  * any other header is mentioned, we won't store the response.
  * Returns 1 if Vary-based storage can work, 0 otherwise.
  */
@@ -923,7 +923,7 @@
 				break;
 
 			default: /* Any unsafe method */
-				/* Discard any corresponding entry in case of sucessful
+				/* Discard any corresponding entry in case of successful
 				 * unsafe request (such as PUT, POST or DELETE). */
 				shctx_lock(shctx);
 
@@ -1650,7 +1650,7 @@
 	http_check_request_for_cacheability(s, &s->req);
 
 	/* The request's hash has to be calculated for all requests, even POSTs
-	 * or PUTs for instance because RFC7234 specifies that a sucessful
+	 * or PUTs for instance because RFC7234 specifies that a successful
 	 * "unsafe" method on a stored resource must invalidate it
 	 * (see RFC7234#4.4). */
 	if (!sha1_hosturi(s))
diff --git a/src/fix.c b/src/fix.c
index 82af1c0..3ad3f2e 100644
--- a/src/fix.c
+++ b/src/fix.c
@@ -124,7 +124,7 @@
 			ret = FIX_NEED_MORE_DATA;
 			goto end;
 		}
-		/* empty tag or empty value are forbbiden */
+		/* empty tag or empty value are forbidden */
 		if (istptr(parser) == istptr(value) ||!istlen(value))
 			goto end;
 
diff --git a/src/log.c b/src/log.c
index 59d68a9..632e8bd 100644
--- a/src/log.c
+++ b/src/log.c
@@ -1483,7 +1483,7 @@
 			}
 			else if (metadata[LOG_META_TAG].len) {
 				/* Tag is present but no hostname, we should
-				 * consider we try to emmit a local log
+				 * consider we try to emit a local log
 				 * in legacy format (analog to RFC3164 but
 				 * with stripped hostname).
 				 */
diff --git a/src/mqtt.c b/src/mqtt.c
index c906fd4..7679cba 100644
--- a/src/mqtt.c
+++ b/src/mqtt.c
@@ -326,7 +326,7 @@
 }
 
 /* Extracts the value of a <fieldname_id> of type <type> from a given MQTT
- * message <msg>.  IST_NULL is returned if an error occured while parsing or if
+ * message <msg>.  IST_NULL is returned if an error occurred while parsing or if
  * the field could not be found. If more data are required, the message with a
  * length set to 0 is returned. If the field is found, the response is returned
  * as a struct ist.
@@ -858,7 +858,7 @@
 
 	/* parsing payload
 	 *
-	 * Content of payload is realted to flags parsed above and the field order is pre-defined:
+	 * Content of payload is related to flags parsed above and the field order is pre-defined:
 	 *   Client Identifier, Will Topic, Will Message, User Name, Password
 	 */
 	/* read client identifier */
diff --git a/src/mux_fcgi.c b/src/mux_fcgi.c
index 2c2611b..9998710 100644
--- a/src/mux_fcgi.c
+++ b/src/mux_fcgi.c
@@ -1147,7 +1147,7 @@
 	if (fcgi_conn_read0_pending(fconn)) {
 		if (fstrm->state == FCGI_SS_OPEN) {
 			fstrm->state = FCGI_SS_HREM;
-			TRACE_STATE("swtiching to HREM", FCGI_EV_STRM_WAKE|FCGI_EV_FSTRM_END, fconn->conn, fstrm);
+			TRACE_STATE("switching to HREM", FCGI_EV_STRM_WAKE|FCGI_EV_FSTRM_END, fconn->conn, fstrm);
 		}
 		else if (fstrm->state == FCGI_SS_HLOC)
 			fcgi_strm_close(fstrm);
diff --git a/src/mux_h1.c b/src/mux_h1.c
index 6558158..81b0e0e 100644
--- a/src/mux_h1.c
+++ b/src/mux_h1.c
@@ -55,13 +55,13 @@
 /* 0x00002000 - 0x00008000 unused */
 
 #define H1C_F_WAIT_OPPOSITE  0x00010000 /* Don't read more data for now, waiting sync with opposite side */
-#define H1C_F_WANT_SPLICE    0x00020000 /* Don't read into a bufffer because we want to use or we are using splicing */
+#define H1C_F_WANT_SPLICE    0x00020000 /* Don't read into a buffer because we want to use or we are using splicing */
 #define H1C_F_ERR_PENDING    0x00040000 /* Send an error and close the connection ASAP (implies H1C_F_ST_ERROR) */
 #define H1C_F_WAIT_NEXT_REQ  0x00080000 /*  waiting for the next request to start, use keep-alive timeout */
 #define H1C_F_UPG_H2C        0x00100000 /* set if an upgrade to h2 should be done */
 #define H1C_F_CO_MSG_MORE    0x00200000 /* set if CO_SFL_MSG_MORE must be set when calling xprt->snd_buf() */
 #define H1C_F_CO_STREAMER    0x00400000 /* set if CO_SFL_STREAMER must be set when calling xprt->snd_buf() */
-/* 0x00800000 - 0x40000000 unsued*/
+/* 0x00800000 - 0x40000000 unused */
 
 #define H1C_F_IS_BACK        0x80000000 /* Set on outgoing connection */
 
@@ -69,7 +69,7 @@
  * H1 Stream flags (32 bits)
  */
 #define H1S_F_NONE           0x00000000
-/* 0x00000001..0x00000004 unsued */
+/* 0x00000001..0x00000004 unused */
 #define H1S_F_REOS           0x00000008 /* End of input stream seen even if not delivered yet */
 #define H1S_F_WANT_KAL       0x00000010
 #define H1S_F_WANT_TUN       0x00000020
diff --git a/src/sample.c b/src/sample.c
index abf820b..d1941ce 100644
--- a/src/sample.c
+++ b/src/sample.c
@@ -3273,7 +3273,7 @@
  * Checks that a buffer contains a valid FIX message
  *
  * Return 1 if the check could be run, 0 if not.
- * The result of the analyse itsef is stored in <smp> as a boolean
+ * The result of the analyse itself is stored in <smp> as a boolean
  */
 static int sample_conv_fix_is_valid(const struct arg *arg_p, struct sample *smp, void *private)
 {
@@ -3334,7 +3334,7 @@
  * this function checks the "mqtt_field_value" converter configuration.
  * It expects a known packet type name or ID and a field name, in this order
  *
- * Args[0] will be turned into a MQTT_CPT_* value for direct maching when parsing
+ * Args[0] will be turned into a MQTT_CPT_* value for direct matching when parsing
  * a packet.
  */
 static int sample_conv_mqtt_field_value_check(struct arg *args, struct sample_conv *conv,
diff --git a/src/server.c b/src/server.c
index 3a3ccc6..15d88de 100644
--- a/src/server.c
+++ b/src/server.c
@@ -2952,7 +2952,7 @@
 				srv->svc_port = port;
 
 #ifdef USE_OPENSSL
-			/* configure ssl if connection has been initated at startup */
+			/* configure ssl if connection has been initiated at startup */
 			if (srv->ssl_ctx.ctx != NULL)
 				ssl_sock_set_srv(srv, use_ssl);
 #endif
diff --git a/src/stats.c b/src/stats.c
index 3f31444..f597c10 100644
--- a/src/stats.c
+++ b/src/stats.c
@@ -3947,7 +3947,7 @@
  * It returns 0 as long as it does not complete, non-zero upon completion.
  * No state is used.
  *
- * Integer values bouned to the range [-(2**53)+1, (2**53)-1] as
+ * Integer values bounded to the range [-(2**53)+1, (2**53)-1] as
  * per the recommendation for interoperable integers in section 6 of RFC 7159.
  */
 static void stats_dump_json_schema(struct buffer *out)
