diff --git a/var/spack/repos/builtin/packages/h5hut/package.py b/var/spack/repos/builtin/packages/h5hut/package.py
index a80a9e1082c632991618c34218cd13d4bfeb8af8..22146372dcfbaa6bcac9e3b23dbf303d5a8b6ad6 100644
--- a/var/spack/repos/builtin/packages/h5hut/package.py
+++ b/var/spack/repos/builtin/packages/h5hut/package.py
@@ -26,45 +26,50 @@
 from spack import *
 
 
-class H5hut(Package):
-    """H5hut (HDF5 Utility Toolkit)
-    High-Performance I/O Library for Particle-based Simulations
-    """
+class H5hut(AutotoolsPackage):
+    """H5hut (HDF5 Utility Toolkit).
+    High-Performance I/O Library for Particle-based Simulations."""
 
     homepage = "https://amas.psi.ch/H5hut/"
     url      = "https://amas.psi.ch/H5hut/raw-attachment/wiki/DownloadSources/H5hut-1.99.13.tar.gz"
 
-    version("1.99.13", "2a07a449afe50534de006ac6954a421a")
+    version('1.99.13', '2a07a449afe50534de006ac6954a421a')
 
-    variant("fortran", default=True, description="Enable Fortran support")
-    variant("mpi", default=True, description="Enable MPI support")
+    variant('fortran', default=True, description='Enable Fortran support')
+    variant('mpi',     default=True, description='Enable MPI support')
 
-    depends_on("autoconf @2.60:", type="build")
-    depends_on("automake", type="build")
-    depends_on("hdf5 +mpi", when="+mpi")
-    depends_on("hdf5 @1.8:")
+    depends_on('mpi',                 when='+mpi')
     # h5hut +mpi uses the obsolete function H5Pset_fapl_mpiposix:
-    depends_on("hdf5 @:1.8.12", when="+mpi")
-    depends_on("libtool", type="build")
-    depends_on("mpi", when="+mpi")
+    depends_on('hdf5@1.8:1.8.12+mpi', when='+mpi')
+    depends_on('hdf5@1.8:',           when='~mpi')
 
-    def install(self, spec, prefix):
-        autogen = Executable("./autogen.sh")
-        autogen()
-        configopts = ["--prefix={0}".format(prefix)]
-        if "+fortran" in spec:
-            if not self.compiler.fc:
-                raise RuntimeError(
-                    "Cannot build Fortran variant without a Fortran compiler")
-            configopts.append("--enable-fortran")
-        if "+mpi" in spec:
-            configopts.extend([
-                "--enable-parallel",
-                "CC=%s" % spec["mpi"].mpicc,
-                "CXX=%s" % spec["mpi"].mpicxx])
-            if "+fortran" in spec:
-                configopts.append("FC=%s" % spec["mpi"].mpifc)
-        configure(*configopts)
+    # If built in parallel, the following error message occurs:
+    # install: .libs/libH5hut.a: No such file or directory
+    parallel = False
 
-        make()
-        make("install")
+    @AutotoolsPackage.precondition('configure')
+    def validate(self):
+        """Checks if Fortran compiler is available."""
+
+        if '+fortran' in self.spec and not self.compiler.fc:
+            raise RuntimeError(
+                'Cannot build Fortran variant without a Fortran compiler.')
+
+    def configure_args(self):
+        spec = self.spec
+        config_args = ['--enable-shared']
+
+        if '+fortran' in spec:
+            config_args.append('--enable-fortran')
+
+        if '+mpi' in spec:
+            config_args.extend([
+                '--enable-parallel',
+                'CC={0}'.format(spec['mpi'].mpicc),
+                'CXX={0}'.format(spec['mpi'].mpicxx)
+            ])
+
+            if '+fortran' in spec:
+                config_args.append('FC={0}'.format(spec['mpi'].mpifc))
+
+        return config_args