diff --git a/contrib/postgres_fdw/connection.c b/contrib/postgres_fdw/connection.c
index 62ccea4c460bfd5218ac612657e007e125b1d09e..0e54901061c7697379c4b86f726d585cd174079c 100644
--- a/contrib/postgres_fdw/connection.c
+++ b/contrib/postgres_fdw/connection.c
@@ -305,7 +305,7 @@ begin_remote_xact(ConnCacheEntry *entry)
 		elog(DEBUG3, "starting remote transaction on connection %p",
 			 entry->conn);
 
-		if (XactIsoLevel == XACT_SERIALIZABLE)
+		if (IsolationIsSerializable())
 			sql = "START TRANSACTION ISOLATION LEVEL SERIALIZABLE";
 		else
 			sql = "START TRANSACTION ISOLATION LEVEL REPEATABLE READ";
diff --git a/src/include/access/xact.h b/src/include/access/xact.h
index 8cadc549716479a807f713e7f76291d5c7ab7789..09e6a6842c2039dc2b7c99cad74a6e83a6d9e9e6 100644
--- a/src/include/access/xact.h
+++ b/src/include/access/xact.h
@@ -28,7 +28,7 @@
 #define XACT_SERIALIZABLE		3
 
 extern int	DefaultXactIsoLevel;
-extern int	XactIsoLevel;
+extern PGDLLIMPORT int XactIsoLevel;
 
 /*
  * We implement three isolation levels internally.