diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py
index 5d68f203516f548a03475434f5a4533ec02a210c..2179086fe525edb812905fa285e2e63e03872060 100644
--- a/var/spack/repos/builtin/packages/mpich/package.py
+++ b/var/spack/repos/builtin/packages/mpich/package.py
@@ -43,6 +43,8 @@ class Mpich(Package):
     version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
 
     variant('verbs', default=False, description='Build support for OpenFabrics verbs.')
+    variant('pmi', default=True, description='Build with PMI support')
+    variant('hydra', default=True, description='Build the hydra process manager')
 
     provides('mpi@:3.0', when='@3:')
     provides('mpi@:1.3', when='@1:')
@@ -62,6 +64,8 @@ def setup_dependent_package(self, module, dep_spec):
 
     def install(self, spec, prefix):
         config_args = ["--prefix=" + prefix,
+                       "--with-pmi=" + ("yes" if '+pmi' in spec else 'no'),
+                       "--with-pm=" + ('hydra' if '+hydra' in spec else 'no'),
                        "--enable-shared"]
 
         # Variants
diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py
index 776fb6eeaaef807f3d9d477dc4bb94abb51e9dc6..d0dd2d657ff26c58a61c164c76f8a170093aa36c 100644
--- a/var/spack/repos/builtin/packages/openmpi/package.py
+++ b/var/spack/repos/builtin/packages/openmpi/package.py
@@ -26,6 +26,7 @@ class Openmpi(Package):
     patch('configure.patch', when="@1.10.0:1.10.1")
 
     variant('psm', default=False, description='Build support for the PSM library.')
+    variant('pmi', default=True, description='Build support for PMI-based launchers')
     variant('verbs', default=False, description='Build support for OpenFabrics verbs.')
 
     # TODO : variant support for other schedulers is missing
@@ -67,6 +68,9 @@ def install(self, spec, prefix):
         if '+psm' in spec:
             config_args.append("--with-psm")
 
+        if '+pmi' in spec:
+            config_args.append("--with-pmi") #TODO: let user specify directory when possible
+
         if '+verbs' in spec:
             # Up through version 1.6, this option was previously named --with-openib
             if spec.satisfies('@:1.6'):