diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 7bd82abda..1231e715c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -139,7 +139,7 @@ The relevant maintainer for a pull request is assigned in 3 steps:
 
 * Step 1: Determine the subdirectory affected by the pull request. This might be src/registry, docs/source/api, or any other part of the repo.
 
-* Step 2: Find the MAINTAINERS file which affects this directory. If the directory itself does not have a MAINTAINERS file, work your way up the the repo hierarchy until you find one.
+* Step 2: Find the MAINTAINERS file which affects this directory. If the directory itself does not have a MAINTAINERS file, work your way up the repo hierarchy until you find one.
 
 * Step 3: The first maintainer listed is the primary maintainer who is assigned the Pull Request. The primary maintainer can reassign a Pull Request to other listed maintainers.
 
diff --git a/docs/source/2021-news.rst b/docs/source/2021-news.rst
index 7875f0a77..3057600de 100644
--- a/docs/source/2021-news.rst
+++ b/docs/source/2021-news.rst
@@ -16,7 +16,7 @@ Changelog - 2021
 - fix tornado usage with latest versions of Django 
 - add support for python -m gunicorn
 - fix systemd socket activation example
-- allows to set wsgi application in configg file using `wsgi_app`
+- allows to set wsgi application in config file using `wsgi_app`
 - document `--timeout = 0`
 - always close a connection when the number of requests exceeds the max requests
 - Disable keepalive during graceful shutdown
diff --git a/docs/source/2023-news.rst b/docs/source/2023-news.rst
index c26071580..1f943c8a2 100644
--- a/docs/source/2023-news.rst
+++ b/docs/source/2023-news.rst
@@ -5,7 +5,7 @@ Changelog - 2023
 22.0.0 - TBDTBDTBD
 ==================
 
-- fix numerous security vulnerabilites in HTTP parser (closing some request smuggling vectors)
+- fix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)
 - parsing additional requests is no longer attempted past unsupported request framing
 - on HTTP versions < 1.1 support for chunked transfer is refused (only used in exploits)
 - requests conflicting configured or passed SCRIPT_NAME now produce a verbose error
@@ -17,7 +17,7 @@ Changelog - 2023
 - minimum version is Python 3.7
 - the limitations on valid characters in the HTTP method have been bounded to Internet Standards
 - requests specifying unsupported transfer coding (order) are refused by default (rare)
-- HTTP methods are no longer casefolded by default (IANA method registry contains none affacted)
+- HTTP methods are no longer casefolded by default (IANA method registry contains none affected)
 - HTTP methods containing the number sign (#) are no longer accepted by default (rare)
 - HTTP versions < 1.0 or >= 2.0 are no longer accepted by default (rare, only HTTP/1.1 is supported)
 - HTTP versions consisting of multiple digits or containing a prefix/suffix are no longer accepted
@@ -46,9 +46,9 @@ This is fixing the bad file description error.
 - support python 3.11
 - fix gevent and eventlet workers
 - fix threads support (gththread): improve performance and unblock requests
-- SSL: noaw use SSLContext object
+- SSL: now use SSLContext object
 - HTTP parser: miscellaneous fixes
-- remove unecessary setuid calls
+- remove unnecessary setuid calls
 - fix testing
 - improve logging
 - miscellaneous fixes to core engine
diff --git a/docs/source/news.rst b/docs/source/news.rst
index 73debcb9b..73cdc4cc7 100644
--- a/docs/source/news.rst
+++ b/docs/source/news.rst
@@ -29,7 +29,7 @@ This is fixing the bad file description error.
 - fix threads support (gththread): improve performance and unblock requests
 - SSL: noaw use SSLContext object
 - HTTP parser: miscellaneous fixes
-- remove unecessary setuid calls
+- remove unnecessary setuid calls
 - fix testing
 - improve logging
 - miscellaneous fixes to core engine
diff --git a/docs/source/settings.rst b/docs/source/settings.rst
index 4be760c28..4e0c11877 100644
--- a/docs/source/settings.rst
+++ b/docs/source/settings.rst
@@ -210,7 +210,7 @@ H            protocol
 s            status
 B            response length
 b            response length or ``'-'`` (CLF format)
-f            referer
+f            referrer
 a            user agent
 T            request time in seconds
 M            request time in milliseconds
@@ -569,7 +569,7 @@ Whether client certificate is required (see stdlib ssl module's)
 ===========  ===========================
 --cert-reqs      Description
 ===========  ===========================
-`0`          no client veirifcation
+`0`          no client verification
 `1`          ssl.CERT_OPTIONAL
 `2`          ssl.CERT_REQUIRED
 ===========  ===========================
diff --git a/gunicorn/arbiter.py b/gunicorn/arbiter.py
index 008a54efe..1cf436748 100644
--- a/gunicorn/arbiter.py
+++ b/gunicorn/arbiter.py
@@ -109,7 +109,7 @@ def setup(self, app):
                 in sorted(self.cfg.settings.items(),
                           key=lambda setting: setting[1]))))
 
-        # set enviroment' variables
+        # set environment' variables
         if self.cfg.env:
             for k, v in self.cfg.env.items():
                 os.environ[k] = v
diff --git a/gunicorn/config.py b/gunicorn/config.py
index 3b57fad0f..144acaecc 100644
--- a/gunicorn/config.py
+++ b/gunicorn/config.py
@@ -2233,7 +2233,7 @@ class PasteGlobalConf(Setting):
 
         The option can be specified multiple times.
 
-        The variables are passed to the the PasteDeploy entrypoint. Example::
+        The variables are passed to the PasteDeploy entrypoint. Example::
 
             $ gunicorn -b 127.0.0.1:8000 --paste development.ini --paste-global FOO=1 --paste-global BAR=2
 
diff --git a/gunicorn/http/message.py b/gunicorn/http/message.py
index 5e8d2427d..88ffa5a25 100644
--- a/gunicorn/http/message.py
+++ b/gunicorn/http/message.py
@@ -166,7 +166,7 @@ def set_body_reader(self):
                 content_length = value
             elif name == "TRANSFER-ENCODING":
                 if value.lower() == "chunked":
-                    # DANGER: transer codings stack, and stacked chunking is never intended
+                    # DANGER: transfer codings stack, and stacked chunking is never intended
                     if chunked:
                         raise InvalidHeader("TRANSFER-ENCODING", req=self)
                     chunked = True