diff --git a/src/backend/commands/dropcmds.c b/src/backend/commands/dropcmds.c
index e7891a4418..725e395bbe 100644
--- a/src/backend/commands/dropcmds.c
+++ b/src/backend/commands/dropcmds.c
@@ -109,7 +109,8 @@ RemoveObjects(DropStmt *stmt)
 		 * result in inconsistencies within the session whose temporary schema
 		 * has been dropped.
 		 */
-		if (stmt->removeType == OBJECT_SCHEMA &&
+		if (!allowSystemTableMods &&
+			stmt->removeType == OBJECT_SCHEMA &&
 			isAnyTempNamespace(address.objectId))
 			ereport(ERROR,
 					(errcode(ERRCODE_WRONG_OBJECT_TYPE),
diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c
index f0e40e36af..c3bf02b040 100644
--- a/src/backend/postmaster/autovacuum.c
+++ b/src/backend/postmaster/autovacuum.c
@@ -2250,11 +2250,16 @@ do_autovacuum(void)
 		}
 
 		/* OK, let's delete it */
-		ereport(LOG,
-				(errmsg("autovacuum: dropping orphan temp table \"%s.%s.%s\"",
-						get_database_name(MyDatabaseId),
-						get_namespace_name(classForm->relnamespace),
-						NameStr(classForm->relname))));
+		if (log_min_messages <= LOG)
+		{
+			char	   *schemaname = get_namespace_name(classForm->relnamespace);
+
+			ereport(LOG,
+					(errmsg("autovacuum: dropping orphan temp table \"%s.%s.%s\"",
+							get_database_name(MyDatabaseId),
+							schemaname != NULL ? schemaname : "(null)",
+							NameStr(classForm->relname))));
+		}
 
 		object.classId = RelationRelationId;
 		object.objectId = relid;
