diff --git a/contrib/pgcrypto/Makefile b/contrib/pgcrypto/Makefile
index c5a493a68a..7fb59f51b7 100644
--- a/contrib/pgcrypto/Makefile
+++ b/contrib/pgcrypto/Makefile
@@ -1,44 +1,38 @@
 # contrib/pgcrypto/Makefile
 
-OSSL_SRCS = openssl.c pgp-mpi-openssl.c
-OSSL_TESTS = sha2 des 3des cast5
-
 ZLIB_TST = pgp-compression
 ZLIB_OFF_TST = pgp-zlib-DISABLED
 
-CF_SRCS = $(OSSL_SRCS)
-CF_TESTS = $(OSSL_TESTS)
 CF_PGP_TESTS = $(if $(subst no,,$(with_zlib)), $(ZLIB_TST), $(ZLIB_OFF_TST))
 
-SRCS = \
-	$(CF_SRCS) \
-	crypt-blowfish.c \
-	crypt-des.c \
-	crypt-gensalt.c \
-	crypt-md5.c \
-	mbuf.c \
-	pgcrypto.c \
-	pgp-armor.c \
-	pgp-cfb.c \
-	pgp-compress.c \
-	pgp-decrypt.c \
-	pgp-encrypt.c \
-	pgp-info.c \
-	pgp-mpi.c \
-	pgp-pgsql.c \
-	pgp-pubdec.c \
-	pgp-pubenc.c \
-	pgp-pubkey.c \
-	pgp-s2k.c \
-	pgp.c \
-	px-crypt.c \
-	px-hmac.c \
-	px.c
+OBJS = \
+	$(WIN32RES) \
+	crypt-blowfish.o \
+	crypt-des.o \
+	crypt-gensalt.o \
+	crypt-md5.o \
+	mbuf.o \
+	openssl.o \
+	pgcrypto.o \
+	pgp-armor.o \
+	pgp-cfb.o \
+	pgp-compress.o \
+	pgp-decrypt.o \
+	pgp-encrypt.o \
+	pgp-info.o \
+	pgp-mpi.o \
+	pgp-mpi-openssl.o \
+	pgp-pgsql.o \
+	pgp-pubdec.o \
+	pgp-pubenc.o \
+	pgp-pubkey.o \
+	pgp-s2k.o \
+	pgp.o \
+	px-crypt.o \
+	px-hmac.o \
+	px.o
 
 MODULE_big	= pgcrypto
-OBJS = \
-	$(SRCS:.c=.o) \
-	$(WIN32RES)
 
 EXTENSION = pgcrypto
 DATA = pgcrypto--1.3.sql pgcrypto--1.2--1.3.sql pgcrypto--1.1--1.2.sql \
@@ -46,7 +40,7 @@ DATA = pgcrypto--1.3.sql pgcrypto--1.2--1.3.sql pgcrypto--1.1--1.2.sql \
 PGFILEDESC = "pgcrypto - cryptographic functions"
 
 REGRESS = init md5 sha1 hmac-md5 hmac-sha1 blowfish rijndael \
-	$(CF_TESTS) \
+	sha2 des 3des cast5 \
 	crypt-des crypt-md5 crypt-blowfish crypt-xdes \
 	pgp-armor pgp-decrypt pgp-encrypt $(CF_PGP_TESTS) \
 	pgp-pubkey-decrypt pgp-pubkey-encrypt pgp-info
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index e1243b5a7e..6363a2f452 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -440,7 +440,7 @@ sub mkvcbuild
 
 	if (!$solution->{options}->{openssl})
 	{
-		push @contrib_excludes, 'sslinfo', 'ssl_passphrase_callback';
+		push @contrib_excludes, 'sslinfo', 'ssl_passphrase_callback', 'pgcrypto';
 	}
 
 	if (!$solution->{options}->{uuid})
@@ -448,30 +448,6 @@ sub mkvcbuild
 		push @contrib_excludes, 'uuid-ossp';
 	}
 
-	# AddProject() does not recognize the constructs used to populate OBJS in
-	# the pgcrypto Makefile, so it will discover no files.
-	my $pgcrypto =
-	  $solution->AddProject('pgcrypto', 'dll', 'crypto', 'contrib/pgcrypto');
-	$pgcrypto->AddFiles(
-		'contrib/pgcrypto', 'pgcrypto.c',
-		'px.c',             'px-hmac.c',
-		'px-crypt.c',       'crypt-gensalt.c',
-		'crypt-blowfish.c', 'crypt-des.c',
-		'crypt-md5.c',      'mbuf.c',
-		'pgp.c',            'pgp-armor.c',
-		'pgp-cfb.c',        'pgp-compress.c',
-		'pgp-decrypt.c',    'pgp-encrypt.c',
-		'pgp-info.c',       'pgp-mpi.c',
-		'pgp-pubdec.c',     'pgp-pubenc.c',
-		'pgp-pubkey.c',     'pgp-s2k.c',
-		'pgp-pgsql.c');
-	$pgcrypto->AddFiles('contrib/pgcrypto', 'openssl.c',
-		'pgp-mpi-openssl.c');
-	$pgcrypto->AddReference($postgres);
-	$pgcrypto->AddLibrary('ws2_32.lib');
-	my $mf = Project::read_file('contrib/pgcrypto/Makefile');
-	GenerateContribSqlFiles('pgcrypto', $mf);
-
 	foreach my $subdir ('contrib', 'src/test/modules')
 	{
 		opendir($D, $subdir) || croak "Could not opendir on $subdir!\n";
