diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 90c2f4a..cdd9e33 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -2030,6 +2030,8 @@ retry1:
 				port->user_name = pstrdup(valptr);
 			else if (strcmp(nameptr, "options") == 0)
 				port->cmdline_options = pstrdup(valptr);
+			else if (strcmp(nameptr, "driver") == 0)
+				port->driver = pstrdup(valptr);
 			else if (strcmp(nameptr, "replication") == 0)
 			{
 				/*
diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c
index 7b19714..b880c91 100644
--- a/src/backend/utils/init/postinit.c
+++ b/src/backend/utils/init/postinit.c
@@ -1087,6 +1087,15 @@ process_startup_options(Port *port, bool am_superuser)
 
 		SetConfigOption(name, value, gucctx, PGC_S_CLIENT);
 	}
+
+	/*
+	 * Apply any driver-specific overrides...
+	 */
+	if (port->driver != NULL)
+	{
+		if (strcmp(port->driver, "npgsql") == 0)
+			SetConfigOption("ssl_renegotiation_limit", 0, PGC_INTERNAL, PGC_S_OVERRIDE);
+	}
 }
 
 /*
diff --git a/src/include/libpq/libpq-be.h b/src/include/libpq/libpq-be.h
index caaa8b5..57e199a 100644
--- a/src/include/libpq/libpq-be.h
+++ b/src/include/libpq/libpq-be.h
@@ -138,6 +138,7 @@ typedef struct Port
 	char	   *database_name;
 	char	   *user_name;
 	char	   *cmdline_options;
+	char	   *driver;
 	List	   *guc_options;
 
 	/*
