diff --git a/src/backend/catalog/namespace.c b/src/backend/catalog/namespace.c
index c82f9fc4b5..0987986a8f 100644
--- a/src/backend/catalog/namespace.c
+++ b/src/backend/catalog/namespace.c
@@ -3235,10 +3235,14 @@ isTempNamespaceInUse(Oid namespaceId)
 
 	backendId = GetTempNamespaceBackendId(namespaceId);
 
-	if (backendId == InvalidBackendId ||
-		backendId == MyBackendId)
+	/* No such temporary namespace? */
+	if (backendId == InvalidBackendId)
 		return false;
 
+	/* Is the namespace used by this backend? */
+	if (backendId == MyBackendId)
+		return true;
+
 	/* Is the backend alive? */
 	proc = BackendIdGetProc(backendId);
 	if (proc == NULL)
diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c
index f0e40e36af..d8702d650a 100644
--- a/src/backend/postmaster/autovacuum.c
+++ b/src/backend/postmaster/autovacuum.c
@@ -2071,9 +2071,11 @@ do_autovacuum(void)
 		{
 			/*
 			 * We just ignore it if the owning backend is still active and
-			 * using the temporary schema.
+			 * using the temporary schema.  If the namespace does not exist
+			 * ignore the entry.
 			 */
-			if (!isTempNamespaceInUse(classForm->relnamespace))
+			if (!isTempNamespaceInUse(classForm->relnamespace) &&
+				get_namespace_name(classForm->relnamespace) != NULL)
 			{
 				/*
 				 * The table seems to be orphaned -- although it might be that
@@ -2202,6 +2204,7 @@ do_autovacuum(void)
 		Oid			relid = lfirst_oid(cell);
 		Form_pg_class classForm;
 		ObjectAddress object;
+		char	   *nspname;
 
 		/*
 		 * Check for user-requested abort.
@@ -2249,12 +2252,18 @@ do_autovacuum(void)
 			continue;
 		}
 
-		/* 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))));
+		nspname = get_namespace_name(classForm->relnamespace);
+
+		if (nspname != NULL)
+			ereport(LOG,
+					(errmsg("autovacuum: dropping orphan temp table \"%s.%s.%s\"",
+							get_database_name(MyDatabaseId),
+							nspname, NameStr(classForm->relname))));
+		else
+			ereport(LOG,
+					(errmsg("autovacuum: dropping orphan temp table \"%s\" with OID %u in database \"%s\"",
+							NameStr(classForm->relname), relid,
+							get_database_name(MyDatabaseId))));
 
 		object.classId = RelationRelationId;
 		object.objectId = relid;
