diff --git a/src/pl/plperl/GNUmakefile b/src/pl/plperl/GNUmakefile
index 1e800a3..55fe9b9 100644
--- a/src/pl/plperl/GNUmakefile
+++ b/src/pl/plperl/GNUmakefile
@@ -36,23 +36,17 @@ DATA = plperl.control plperl--1.0.sql plperl--unpackaged--1.0.sql \
 
 PERLCHUNKS = plc_perlboot.pl plc_trusted.pl
 
-# Perl on win32 ships with import libraries only for Microsoft Visual C++,
-# which are not compatible with mingw gcc. Therefore we need to build a
-# new import library to link with.
+# When Perl on win32 doesn't ship with mingw import libraries, link to the DLL
+# directly.
 ifeq ($(PORTNAME), win32)
 
+perllibdir := $(subst -L,,$(filter -L%, $(perl_embed_ldflags)))
 perlwithver := $(subst -l,,$(filter -l%, $(perl_embed_ldflags)))
-PERLDLL := $(dir $(subst ',,$(PERL)))$(perlwithver).dll
-# we no longer want to include the original -l spec in SHLIB_LINK
-override perl_embed_ldflags :=
-
-OBJS += lib$(perlwithver).a
-
-lib$(perlwithver).a: $(perlwithver).def
-	dlltool --dllname $(perlwithver).dll --def $(perlwithver).def --output-lib lib$(perlwithver).a
-
-$(perlwithver).def: $(PERLDLL)
-	pexports $^ > $@
+# Link to the perl DLL directly in the bin directory unless the mingw import 
+# library exists.
+ifeq (, $(shell find $(perllibdir) -maxdepth 1 -name lib$(perlwithver).a)) 
+override perl_embed_ldflags := -L$(dir $(PERL))' -l$(perlwithver)
+endif
 
 endif # win32
 
