diff --git a/ogscm/cli.py b/ogscm/cli.py
index abee60f9d957019ba9471eba3c9a1d02f6e04ce4..b56dacc711b7f235564d71cc9f062947ea4129f8 100644
--- a/ogscm/cli.py
+++ b/ogscm/cli.py
@@ -16,6 +16,8 @@ import subprocess
 import sys
 import yaml
 
+from packaging import version
+
 import hpccm
 from hpccm import linux_distro
 from hpccm.building_blocks import packages, mlnx_ofed, knem, ucx, openmpi, \
@@ -198,12 +200,17 @@ def main():  # pragma: no cover
                     ])
             else:
                 Stage0 += ucx(cuda=False)
-                Stage0 += pmix()
                 Stage0 += slurm_pmi2(version='17.02.11')
-                mpicc = openmpi(cuda=False,
+                pmix_version = True
+                if version.parse(ompi) >= version.parse('4'):
+                    Stage0 += pmix()
+                    pmix_version = '/usr/local/pmix'
+
+                mpicc = openmpi(version=ompi,
+                                cuda=False,
                                 infiniband=False,
                                 pmi='/usr/local/slurm-pmi2',
-                                pmix='/usr/local/pmix',
+                                pmix=pmix_version,
                                 ucx='/usr/local/ucx')
 
             toolchain = mpicc.toolchain
diff --git a/requirements.txt b/requirements.txt
index b7e273a5f635c585ddeb8ac9e491dc23de057a40..568d4dd1ee3dadf45c4806adb9ce7eda8d30a71b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -2,3 +2,4 @@ six
 hpccm
 requests
 pyyaml
+packaging