diff --git a/contrib/postgres_fdw/connection.c b/contrib/postgres_fdw/connection.c
index 75d93d6ead..da32d503bc 100644
--- a/contrib/postgres_fdw/connection.c
+++ b/contrib/postgres_fdw/connection.c
@@ -1686,7 +1686,7 @@ pgfdw_abort_cleanup(ConnCacheEntry *entry, bool toplevel)
  *
  * Returns true if the abort command or cancel request is successfully issued,
  * false otherwise.  If the abort command is successfully issued, the given
- * connection cache entry is appended to *pending_entries.  Othewise, if the
+ * connection cache entry is appended to *pending_entries.  Otherwise, if the
  * cancel request is successfully issued, it is appended to *cancel_requested.
  */
 static bool
diff --git a/src/backend/storage/lmgr/predicate.c b/src/backend/storage/lmgr/predicate.c
index 23461b46f6..203b189559 100644
--- a/src/backend/storage/lmgr/predicate.c
+++ b/src/backend/storage/lmgr/predicate.c
@@ -164,7 +164,7 @@
  *		PredicateLockPage(Relation relation, BlockNumber blkno,
  *						Snapshot snapshot)
  *		PredicateLockTID(Relation relation, ItemPointer tid, Snapshot snapshot,
- *						 TransactionId insert_xid)
+ *						 TransactionId tuple_xid)
  *		PredicateLockPageSplit(Relation relation, BlockNumber oldblkno,
  *							   BlockNumber newblkno)
  *		PredicateLockPageCombine(Relation relation, BlockNumber oldblkno,
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 6df9121a17..9dd624b3ae 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -6365,8 +6365,8 @@ GUCArrayAdd(ArrayType *array, ArrayType **usersetArray,
 				}
 
 				/*
-				 * Recheck permissons if we found an option without USER SET
-				 * flag while we're setting an optionn with USER SET flag.
+				 * Recheck permissions if we found an option without USER SET
+				 * flag while we're setting an option with USER SET flag.
 				 */
 				if (!currentUserSet && user_set)
 					(void) validate_option_array_item(name, value,
diff --git a/src/bin/scripts/t/100_vacuumdb.pl b/src/bin/scripts/t/100_vacuumdb.pl
index 46101899ae..4788c313a7 100644
--- a/src/bin/scripts/t/100_vacuumdb.pl
+++ b/src/bin/scripts/t/100_vacuumdb.pl
@@ -71,7 +71,7 @@ $node->issues_sql_like(
 	'vacuumdb --no-process-main');
 $node->command_fails(
 	[ 'vacuumdb', '--analyze-only', '--no-process-main', 'postgres' ],
-	'--analyze-only and --no-process_main specified together');
+	'--analyze-only and --no-process-main specified together');
 $node->issues_sql_like(
 	[ 'vacuumdb', '--no-process-toast', 'postgres' ],
 	qr/statement: VACUUM \(PROCESS_TOAST FALSE, SKIP_DATABASE_STATS\).*;/,
diff --git a/src/include/utils/memutils_memorychunk.h b/src/include/utils/memutils_memorychunk.h
index 2439ba4e96..ffa91131c8 100644
--- a/src/include/utils/memutils_memorychunk.h
+++ b/src/include/utils/memutils_memorychunk.h
@@ -37,8 +37,8 @@
  * In some cases, for example when memory allocations become large, it's
  * possible fields 3 and 4 above are not large enough to store the values
  * required for the chunk.  In this case, the MemoryContext can choose to mark
- * the chunk as "external" by calling the MemoryChunkSetExternal() function.
- * When this is done, fields 3 and 4 are unavailable for use by the
+ * the chunk as "external" by calling the MemoryChunkSetHdrMaskExternal()
+ * function.  When this is done, fields 3 and 4 are unavailable for use by the
  * MemoryContext and it's up to the MemoryContext itself to devise its own
  * method for getting the reference to the block.
  *
diff --git a/src/test/kerberos/t/001_auth.pl b/src/test/kerberos/t/001_auth.pl
index bf12752529..a5b79a1982 100644
--- a/src/test/kerberos/t/001_auth.pl
+++ b/src/test/kerberos/t/001_auth.pl
@@ -413,7 +413,7 @@ test_query(
 $node->connect_ok(
 	$node->connstr('postgres')
 	  . " user=test1 host=$host hostaddr=$hostaddr gssencmode=disable require_auth=gss",
-	"GSS authentication requested, works with non-encyrpted GSS");
+	"GSS authentication requested, works with non-encrypted GSS");
 $node->connect_ok(
 	$node->connstr('postgres')
 	  . " user=test1 host=$host hostaddr=$hostaddr gssencmode=require require_auth=gss",
diff --git a/src/test/ldap/LdapServer.pm b/src/test/ldap/LdapServer.pm
index f46271af60..3cc05b8255 100644
--- a/src/test/ldap/LdapServer.pm
+++ b/src/test/ldap/LdapServer.pm
@@ -254,7 +254,7 @@ sub _ldapenv
 
 =over
 
-=item ldap_add(filename)
+=item ldapadd_file(filename)
 
 filename is the path to a file containing LDIF data which is added to the LDAP
 server.
diff --git a/src/test/modules/ldap_password_func/meson.build b/src/test/modules/ldap_password_func/meson.build
index 653a5e9479..63dc852bf3 100644
--- a/src/test/modules/ldap_password_func/meson.build
+++ b/src/test/modules/ldap_password_func/meson.build
@@ -9,7 +9,7 @@ ldap_password_func_sources = files(
 if host_system == 'windows'
   ldap_password_func_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
     '--NAME', 'ldap_password_func',
-    '--FILEDESC', 'set hook to mutate ldapbindpassw',])
+    '--FILEDESC', 'set hook to mutate ldapbindpasswd',])
 endif
 
 ldap_password_func = shared_module('ldap_password_func',
diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c
index f7bcb30ca4..48008fa8c3 100644
--- a/src/test/regress/pg_regress.c
+++ b/src/test/regress/pg_regress.c
@@ -276,7 +276,7 @@ test_status_print(bool ok, const char *testname, double runtime, bool parallel)
 	 * Testnumbers are padded to 5 characters to ensure that testnames align
 	 * vertically (assuming at most 9999 tests).  Testnames are prefixed with
 	 * a leading character to indicate being run in parallel or not. A leading
-	 * '+' indicates a parellel test, '-' indicates a single test.
+	 * '+' indicates a parallel test, '-' indicates a single test.
 	 */
 	emit_tap_output(TEST_STATUS, "%sok %-5i%*s %c %-*s %8.0f ms",
 					(ok ? "" : "not "),
