diff --git a/src/backend/libpq/be-secure-gssapi.c b/src/backend/libpq/be-secure-gssapi.c
index 64427f185b..1b30a2a125 100644
--- a/src/backend/libpq/be-secure-gssapi.c
+++ b/src/backend/libpq/be-secure-gssapi.c
@@ -490,7 +490,21 @@ secure_open_gssapi(Port *port)
 	 * doesn't support the cred store extensions, so use the env var.
 	 */
 	if (pg_krb_server_keyfile != NULL && strlen(pg_krb_server_keyfile) > 0)
-		setenv("KRB5_KTNAME", pg_krb_server_keyfile, 1);
+	{
+		size_t		kt_len = strlen(pg_krb_server_keyfile) + 14;
+		char		*kt_path = malloc(kt_len);
+
+		if (!kt_path ||
+			snprintf(kt_path, kt_len, "KRB5_KTNAME=%s",
+				pg_krb_server_keyfile) != kt_len - 2 ||
+					putenv(kt_path) != 0)
+		{
+			ereport(LOG,
+					(errcode(ERRCODE_OUT_OF_MEMORY),
+						errmsg("out of memory")));
+			return STATUS_ERROR;
+		}
+	}
 
 	while (true)
 	{
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index bc8904732f..0c60037ce9 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -1011,10 +1011,19 @@ sub AddProject
 	}
 	if ($self->{options}->{gss})
 	{
-		$proj->AddIncludeDir($self->{options}->{gss} . '\inc\krb5');
-		$proj->AddLibrary($self->{options}->{gss} . '\lib\i386\krb5_32.lib');
-		$proj->AddLibrary($self->{options}->{gss} . '\lib\i386\comerr32.lib');
-		$proj->AddLibrary($self->{options}->{gss} . '\lib\i386\gssapi32.lib');
+		$proj->AddIncludeDir($self->{options}->{gss} . '\include');
+		if ($self->{platform} eq 'Win32')
+		{
+			$proj->AddLibrary($self->{options}->{gss} . '\lib\i386\krb5_32.lib');
+			$proj->AddLibrary($self->{options}->{gss} . '\lib\i386\comerr32.lib');
+			$proj->AddLibrary($self->{options}->{gss} . '\lib\i386\gssapi32.lib');
+		}
+		else
+		{
+			$proj->AddLibrary($self->{options}->{gss} . '\lib\amd64\krb5_64.lib');
+			$proj->AddLibrary($self->{options}->{gss} . '\lib\amd64\comerr64.lib');
+			$proj->AddLibrary($self->{options}->{gss} . '\lib\amd64\gssapi64.lib');
+		}
 	}
 	if ($self->{options}->{iconv})
 	{
