diff --git a/var/spack/repos/builtin/packages/plumed/package.py b/var/spack/repos/builtin/packages/plumed/package.py
index 79632abf38965895d1ae0afff792e21984780899..60dfdf74055faac9e4e8d0f1ac69bc0e13b3b437 100644
--- a/var/spack/repos/builtin/packages/plumed/package.py
+++ b/var/spack/repos/builtin/packages/plumed/package.py
@@ -66,6 +66,8 @@ class Plumed(Package):
     depends_on('mpi', when='+mpi')
     depends_on('gsl', when='+gsl')
 
+    depends_on('autoconf', type='build')
+
     # Dictionary mapping PLUMED versions to the patches it provides
     # interactively
     plumed_patches = {
@@ -98,6 +100,12 @@ def setup_dependent_package(self, module, ext_spec):
         module.plumed = Executable(join_path(self.spec.prefix.bin, 'plumed'))
 
     def install(self, spec, prefix):
+        # This part is needed to avoid linking with gsl cblas
+        # interface which will mask the cblas interface
+        # provided by optimized libraries due to linking order
+        filter_file('-lgslcblas', '', 'configure.ac')
+        autoreconf('-ivf')
+
         # From plumed docs :
         # Also consider that this is different with respect to what some other
         # configure script does in that variables such as MPICXX are