diff --git a/gnu-system.am b/gnu-system.am
index 06ec6e7142a5a42ffeb4c5416252ef542e334141..8936b0be1fad2fe56a449cf3c1cd9b2c5b636538 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -503,6 +503,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/patchutils-xfail-gendiff-tests.patch	\
   gnu/packages/patches/pavucontrol-sigsegv.patch		\
   gnu/packages/patches/perl-gd-options-passthrough-and-fontconfig.patch \
+  gnu/packages/patches/perl-module-pluggable-search.patch	\
   gnu/packages/patches/perl-net-amazon-s3-moose-warning.patch	\
   gnu/packages/patches/perl-no-sys-dirs.patch			\
   gnu/packages/patches/perl-tk-x11-discover.patch		\
diff --git a/gnu/packages/patches/perl-module-pluggable-search.patch b/gnu/packages/patches/perl-module-pluggable-search.patch
new file mode 100644
index 0000000000000000000000000000000000000000..bb2a57f7e5331bfb0104c0290827639216cb95e4
--- /dev/null
+++ b/gnu/packages/patches/perl-module-pluggable-search.patch
@@ -0,0 +1,25 @@
+Fix core Perl module Module::Pluggable such that it can find plugins that live
+in symlinked directories.
+
+Patch borrowed/adapted from Nixpkgs.
+
+--- perl-5.16.1/cpan/Module-Pluggable/lib/Module/Pluggable/Object.pm	2015-04-08 23:28:48.120164135 -0500
++++ perl-5.16.1/cpan/Module-Pluggable/lib/Module/Pluggable/Object.pm	2015-04-08 23:30:27.032166704 -0500
+@@ -164,7 +164,7 @@
+         my $sp = catdir($dir, (split /::/, $searchpath));
+ 
+         # if it doesn't exist or it's not a dir then skip it
+-        next unless ( -e $sp && -d _ ); # Use the cached stat the second time
++        next unless ( -e $sp );
+ 
+         my @files = $self->find_files($sp);
+ 
+@@ -279,7 +279,7 @@
+                              (my $path = $File::Find::name) =~ s#^\\./##;
+                              push @files, $path;
+                            }
+-                      }, $search_path );
++                      }, "$search_path/." );
+     }
+     #chdir $cwd;
+     return @files;
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index e55eb8791dc81c54ba21e54181df1dcfc50c10ee..80c476b2b15cb3e1f81363a4f44fb476ffba6735 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -44,7 +44,9 @@ (define-public perl
              (sha256
               (base32
                "15qxzba3a50c9nik5ydgyfp62x7h9vxxn12yd1jgl93hb1wj96km"))
-             (patches (list (search-patch "perl-no-sys-dirs.patch")))))
+             (patches (map search-patch
+                           '("perl-no-sys-dirs.patch"
+                             "perl-module-pluggable-search.patch")))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f