diff --git a/src/pl/plperl/GNUmakefile b/src/pl/plperl/GNUmakefile
index a0bb140034a9e1d9f4c2b73dad160b661d7cfbb8..1e27a5d8c262a5ef13db178f0d4e51eebb3afc94 100644
--- a/src/pl/plperl/GNUmakefile
+++ b/src/pl/plperl/GNUmakefile
@@ -1,5 +1,5 @@
 # Makefile for PL/Perl
-# $PostgreSQL: pgsql/src/pl/plperl/GNUmakefile,v 1.36 2008/10/02 08:11:11 petere Exp $
+# $PostgreSQL: pgsql/src/pl/plperl/GNUmakefile,v 1.37 2009/06/05 18:29:56 adunstan Exp $
 
 subdir = src/pl/plperl
 top_builddir = ../../..
@@ -19,7 +19,8 @@ ifneq (,$(findstring yes, $(shared_libperl)$(allow_nonpic_in_shlib)))
 ifeq ($(PORTNAME), win32)
 perl_archlibexp := $(subst \,/,$(perl_archlibexp))
 perl_privlibexp := $(subst \,/,$(perl_privlibexp))
-perl_embed_ldflags = -L$(perl_archlibexp)/CORE -lperl58
+perl_lib := $(basename $(notdir $(wildcard $(perl_archlibexp)/CORE/perl[5-9]*.lib)))
+perl_embed_ldflags = -L$(perl_archlibexp)/CORE -l$(perl_lib)
 override CPPFLAGS += -DPLPERL_HAVE_UID_GID
 # Perl on win32 contains /* within comment all over the header file,
 # so disable this warning.
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 6b1106288de62f67a1a3b59a4142653fe2ae377f..b5d965ba67712d1655b3f004adcc9ee88064ab3f 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -3,7 +3,7 @@ package Mkvcbuild;
 #
 # Package that generates build files for msvc build
 #
-# $PostgreSQL: pgsql/src/tools/msvc/Mkvcbuild.pm,v 1.39 2009/04/07 19:35:57 mha Exp $
+# $PostgreSQL: pgsql/src/tools/msvc/Mkvcbuild.pm,v 1.40 2009/06/05 18:29:56 adunstan Exp $
 #
 use Carp;
 use Win32;
@@ -104,14 +104,16 @@ sub mkvcbuild
             }
         }
         $plperl->AddReference($postgres);
-        if (-e $solution->{options}->{perl} . '\lib\CORE\perl510.lib')
+		my @perl_libs = grep {/perl\d+.lib$/ }
+			glob($solution->{options}->{perl} . '\lib\CORE\perl*.lib');
+        if (@perl_libs == 1)
         {
-            $plperl->AddLibrary($solution->{options}->{perl} . '\lib\CORE\perl510.lib');
-        }
-        else
-        {
-            $plperl->AddLibrary($solution->{options}->{perl} . '\lib\CORE\perl58.lib');
+            $plperl->AddLibrary($perl_libs[0]);
         }
+		else
+		{
+			die "could not identify perl library version";
+		}
     }
 
     if ($solution->{options}->{python})