diff --git a/Lib/_strptime.py b/Lib/_strptime.py
index 1be0485..c8f2f94 100644
--- a/Lib/_strptime.py
+++ b/Lib/_strptime.py
@@ -463,7 +463,7 @@
                     z = z[:3] + z[4:]
                     if len(z) > 5:
                         if z[5] != ':':
-                            msg = f"Unconsistent use of : in {found_dict['z']}"
+                            msg = f"Inconsistent use of : in {found_dict['z']}"
                             raise ValueError(msg)
                         z = z[:5] + z[6:]
                 hours = int(z[1:3])
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index c4aab2e..c8b0caa 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -39,7 +39,7 @@
 Edits persist while IDLE remains open.
 Patch by Serhiy Storchake and Terry Jan Reedy.
 
-bpo-31858: Restrict shell prompt manipulaton to the shell.
+bpo-31858: Restrict shell prompt manipulation to the shell.
 Editor and output windows only see an empty last prompt line.  This
 simplifies the code and fixes a minor bug when newline is inserted.
 Sys.ps1, if present, is read on Shell start-up, but is not set or changed.
diff --git a/Lib/sqlite3/test/dbapi.py b/Lib/sqlite3/test/dbapi.py
index 5332975..7c259d2 100644
--- a/Lib/sqlite3/test/dbapi.py
+++ b/Lib/sqlite3/test/dbapi.py
@@ -161,7 +161,7 @@
             self.cx.in_transaction = True
 
     def CheckOpenWithPathLikeObject(self):
-        """ Checks that we can succesfully connect to a database using an object that
+        """ Checks that we can successfully connect to a database using an object that
             is PathLike, i.e. has __fspath__(). """
         self.addCleanup(unlink, TESTFN)
         class Path:
diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
index c6a1f5c..aa8eb75 100644
--- a/Lib/test/_test_multiprocessing.py
+++ b/Lib/test/_test_multiprocessing.py
@@ -1104,7 +1104,7 @@
             q = SafeQueue(ctx=multiprocessing.get_context())
             q.put(not_serializable_obj)
 
-            # Verify that q is still functionning correctly
+            # Verify that q is still functioning correctly
             q.put(True)
             self.assertTrue(q.get(timeout=1.0))
 
diff --git a/Lib/test/test__xxsubinterpreters.py b/Lib/test/test__xxsubinterpreters.py
index 397d359..4ef7771 100644
--- a/Lib/test/test__xxsubinterpreters.py
+++ b/Lib/test/test__xxsubinterpreters.py
@@ -1001,7 +1001,7 @@
             interpreters.channel_recv(cid)
 
     def test_drop_partially(self):
-        # XXX Is partial close too wierd/confusing?
+        # XXX Is partial close too weird/confusing?
         cid = interpreters.channel_create()
         interpreters.channel_send(cid, None)
         interpreters.channel_recv(cid)
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index bff1dc2..44501d9 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -5948,7 +5948,7 @@
 @unittest.skipUnless(sys.platform.startswith("win"), "requires Windows")
 class TestMSWindowsTCPFlags(unittest.TestCase):
     knownTCPFlags = {
-                       # avaliable since long time ago
+                       # available since long time ago
                        'TCP_MAXSEG',
                        'TCP_NODELAY',
                        # available starting with Windows 10 1607
diff --git a/Lib/test/test_strptime.py b/Lib/test/test_strptime.py
index af71008..de2773f 100644
--- a/Lib/test/test_strptime.py
+++ b/Lib/test/test_strptime.py
@@ -363,7 +363,7 @@
             _strptime._strptime("-01:30:30:123456", "%z")
         with self.assertRaises(ValueError) as err:
             _strptime._strptime("-01:3030", "%z")
-        self.assertEqual("Unconsistent use of : in -01:3030", str(err.exception))
+        self.assertEqual("Inconsistent use of : in -01:3030", str(err.exception))
 
     def test_timezone(self):
         # Test timezone directives.
diff --git a/Lib/typing.py b/Lib/typing.py
index d45502f..8329607 100644
--- a/Lib/typing.py
+++ b/Lib/typing.py
@@ -732,7 +732,7 @@
         return (self.__origin__,)
 
     def __getattr__(self, attr):
-        # We are carefull for copy and pickle.
+        # We are careful for copy and pickle.
         # Also for simplicity we just don't relay all dunder names
         if '__origin__' in self.__dict__ and not _is_dunder(attr):
             return getattr(self.__origin__, attr)
