diff --git a/META-INFO/api-info b/META-INFO/api-info
index 38797539e904025eebc1961668fca74c82fd3338..0821b0ef51831997726dfc7a9e4e36b5cb17b430 100644
--- a/META-INFO/api-info
+++ b/META-INFO/api-info
@@ -1,2 +1,2 @@
 api=1812
-patch=190123
+patch=190129
diff --git a/etc/bashrc b/etc/bashrc
index 630328a4f02572097c9f1b2ea454f2110b21355f..89ecd7eb823602dd1e52ca0d11f69bc45564b197 100644
--- a/etc/bashrc
+++ b/etc/bashrc
@@ -93,6 +93,7 @@ export WM_COMPILE_OPTION=Opt
 # [WM_MPLIB] - MPI implementation:
 # = SYSTEMOPENMPI | OPENMPI | SYSTEMMPI | MPI | MPICH | MPICH-GM |
 #   HPMPI | CRAY-MPICH | FJMPI | QSMPI | SGIMPI | INTELMPI | USERMPI
+# Also possible to use INTELMPI-xyz etc and define your own wmake rule
 export WM_MPLIB=SYSTEMOPENMPI
 
 
diff --git a/etc/config.csh/mpi b/etc/config.csh/mpi
index cb7f278d513fa6fed17adf4763d6ad2d7d5d473e..8ee7a44b12d1e676ca68e40572362baf3146480d 100644
--- a/etc/config.csh/mpi
+++ b/etc/config.csh/mpi
@@ -33,7 +33,7 @@ unsetenv MPI_ARCH_PATH MPI_HOME
 setenv FOAM_MPI dummy  # Fallback value
 
 switch ("$WM_MPLIB")
-case SYSTEMOPENMPI:
+case SYSTEMOPENMPI*:
     # The system installed openmpi, locations discovery via mpicc.
     setenv FOAM_MPI openmpi-system
     _foamEtc -config openmpi-system             # <- Adjustments (optional)
@@ -52,7 +52,7 @@ case SYSTEMOPENMPI:
     endif
     breaksw
 
-case OPENMPI:
+case OPENMPI*:
     setenv FOAM_MPI openmpi-1.10.4
     _foamEtc -config openmpi                    # <- Adjustments (optional)
 
@@ -243,7 +243,7 @@ case SGIMPI:
     _foamAddLib     $MPI_ARCH_PATH/lib
     breaksw
 
-case INTELMPI:
+case INTELMPI*:
     if ( $?I_MPI_ROOT ) then
         # I_MPI_ROOT: The Intel MPI Library installation directory
 
@@ -300,14 +300,8 @@ case INTELMPI:
         echo "    Currently using '$MPI_ARCH_PATH'"
     endif
 
-    # Newer versions (5.0.3 or earlier?) with intel64/bin ...
-    if ( -d "$MPI_ARCH_PATH/intel64/bin" ) then
-        _foamAddPath    "$MPI_ARCH_PATH/intel64/bin"
-        _foamAddLib     "$MPI_ARCH_PATH/intel64/lib"
-    else
-        _foamAddPath    "$MPI_ARCH_PATH/bin64"
-        _foamAddLib     "$MPI_ARCH_PATH/lib64"
-    endif
+    _foamAddPath    "$MPI_ARCH_PATH/intel64/bin"
+    _foamAddLib     "$MPI_ARCH_PATH/intel64/lib"
     breaksw
 endsw
 
diff --git a/etc/config.sh/mpi b/etc/config.sh/mpi
index 4f0bd9545a03c9ff42814261caa96e09b1b8991c..014bd7bf38274edd5490cefbb852ce4cd4eb8ac8 100644
--- a/etc/config.sh/mpi
+++ b/etc/config.sh/mpi
@@ -33,7 +33,7 @@ unset MPI_ARCH_PATH MPI_HOME
 export FOAM_MPI=dummy  # Fallback value
 
 case "$WM_MPLIB" in
-SYSTEMOPENMPI)
+SYSTEMOPENMPI*)
     # The system installed openmpi, locations discovery via mpicc.
     export FOAM_MPI=openmpi-system
 
@@ -58,7 +58,7 @@ SYSTEMOPENMPI)
     fi
     ;;
 
-OPENMPI)
+OPENMPI*)
     export FOAM_MPI=openmpi-1.10.4
     _foamEtc -config  openmpi                   # <- Adjustments (optional)
 
@@ -261,7 +261,7 @@ SGIMPI)
     _foamAddLib     $MPI_ARCH_PATH/lib
     ;;
 
-INTELMPI)
+INTELMPI*)
     if [ -n "$I_MPI_ROOT" ]
     then
         # I_MPI_ROOT: The Intel MPI Library installation directory
@@ -303,15 +303,8 @@ INTELMPI)
 
     export FOAM_MPI MPI_ARCH_PATH
 
-    # Newer versions (5.0.3 or earlier?) with intel64/bin ...
-    if [ -d "$MPI_ARCH_PATH/intel64/bin" ]
-    then
-        _foamAddPath    "$MPI_ARCH_PATH/intel64/bin"
-        _foamAddLib     "$MPI_ARCH_PATH/intel64/lib"
-    else
-        _foamAddPath    "$MPI_ARCH_PATH/bin64"
-        _foamAddLib     "$MPI_ARCH_PATH/lib64"
-    fi
+    _foamAddPath    "$MPI_ARCH_PATH/intel64/bin"
+    _foamAddLib     "$MPI_ARCH_PATH/intel64/lib"
     ;;
 esac
 
diff --git a/etc/cshrc b/etc/cshrc
index cb2f51e6c78d9c4798cce3034c2baab3a6dc6bb0..60f61fbcb0ad7ad474574599a1d592adb95ebb51 100644
--- a/etc/cshrc
+++ b/etc/cshrc
@@ -95,6 +95,7 @@ setenv WM_COMPILE_OPTION Opt
 # [WM_MPLIB] - MPI implementation:
 # = SYSTEMOPENMPI | OPENMPI | SYSTEMMPI | MPI | MPICH | MPICH-GM |
 #   HPMPI | CRAY-MPICH | FJMPI | QSMPI | SGIMPI | INTELMPI | USERMPI
+# Also possible to use INTELMPI-xyz etc and define your own wmake rule
 setenv WM_MPLIB SYSTEMOPENMPI
 
 
diff --git a/wmake/rules/linux64Clang/mplibINTELMPI b/wmake/rules/linux64Clang/mplibINTELMPI
index 278e0b0f22c7c7d6fafc3334cddccb237afe232e..e5f0d01163d87759eb1b90d317fd8a61058ccb74 100644
--- a/wmake/rules/linux64Clang/mplibINTELMPI
+++ b/wmake/rules/linux64Clang/mplibINTELMPI
@@ -1,3 +1,3 @@
 PFLAGS     = -DMPICH_SKIP_MPICXX
-PINC       = -isystem $(MPI_ARCH_PATH)/include64
-PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
+PINC       = -isystem $(MPI_ARCH_PATH)/intel64/include
+PLIBS      = -L$(MPI_ARCH_PATH)/intel64/lib -lmpi
diff --git a/wmake/rules/linux64Cray/mplibINTELMPI b/wmake/rules/linux64Cray/mplibINTELMPI
index 278e0b0f22c7c7d6fafc3334cddccb237afe232e..e5f0d01163d87759eb1b90d317fd8a61058ccb74 100644
--- a/wmake/rules/linux64Cray/mplibINTELMPI
+++ b/wmake/rules/linux64Cray/mplibINTELMPI
@@ -1,3 +1,3 @@
 PFLAGS     = -DMPICH_SKIP_MPICXX
-PINC       = -isystem $(MPI_ARCH_PATH)/include64
-PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
+PINC       = -isystem $(MPI_ARCH_PATH)/intel64/include
+PLIBS      = -L$(MPI_ARCH_PATH)/intel64/lib -lmpi
diff --git a/wmake/rules/linux64Gcc/mplibINTELMPI b/wmake/rules/linux64Gcc/mplibINTELMPI
index 278e0b0f22c7c7d6fafc3334cddccb237afe232e..e5f0d01163d87759eb1b90d317fd8a61058ccb74 100644
--- a/wmake/rules/linux64Gcc/mplibINTELMPI
+++ b/wmake/rules/linux64Gcc/mplibINTELMPI
@@ -1,3 +1,3 @@
 PFLAGS     = -DMPICH_SKIP_MPICXX
-PINC       = -isystem $(MPI_ARCH_PATH)/include64
-PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
+PINC       = -isystem $(MPI_ARCH_PATH)/intel64/include
+PLIBS      = -L$(MPI_ARCH_PATH)/intel64/lib -lmpi
diff --git a/wmake/rules/linux64GccKNL/mplibINTELMPI b/wmake/rules/linux64GccKNL/mplibINTELMPI
index 278e0b0f22c7c7d6fafc3334cddccb237afe232e..e5f0d01163d87759eb1b90d317fd8a61058ccb74 100644
--- a/wmake/rules/linux64GccKNL/mplibINTELMPI
+++ b/wmake/rules/linux64GccKNL/mplibINTELMPI
@@ -1,3 +1,3 @@
 PFLAGS     = -DMPICH_SKIP_MPICXX
-PINC       = -isystem $(MPI_ARCH_PATH)/include64
-PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
+PINC       = -isystem $(MPI_ARCH_PATH)/intel64/include
+PLIBS      = -L$(MPI_ARCH_PATH)/intel64/lib -lmpi
diff --git a/wmake/rules/linux64Icc/mplibINTELMPI b/wmake/rules/linux64Icc/mplibINTELMPI
index 278e0b0f22c7c7d6fafc3334cddccb237afe232e..e5f0d01163d87759eb1b90d317fd8a61058ccb74 100644
--- a/wmake/rules/linux64Icc/mplibINTELMPI
+++ b/wmake/rules/linux64Icc/mplibINTELMPI
@@ -1,3 +1,3 @@
 PFLAGS     = -DMPICH_SKIP_MPICXX
-PINC       = -isystem $(MPI_ARCH_PATH)/include64
-PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
+PINC       = -isystem $(MPI_ARCH_PATH)/intel64/include
+PLIBS      = -L$(MPI_ARCH_PATH)/intel64/lib -lmpi
diff --git a/wmake/rules/linux64IccKNL/mplibINTELMPI b/wmake/rules/linux64IccKNL/mplibINTELMPI
index 278e0b0f22c7c7d6fafc3334cddccb237afe232e..e5f0d01163d87759eb1b90d317fd8a61058ccb74 100644
--- a/wmake/rules/linux64IccKNL/mplibINTELMPI
+++ b/wmake/rules/linux64IccKNL/mplibINTELMPI
@@ -1,3 +1,3 @@
 PFLAGS     = -DMPICH_SKIP_MPICXX
-PINC       = -isystem $(MPI_ARCH_PATH)/include64
-PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
+PINC       = -isystem $(MPI_ARCH_PATH)/intel64/include
+PLIBS      = -L$(MPI_ARCH_PATH)/intel64/lib -lmpi
diff --git a/wmake/rules/linuxIA64Icc/mplibINTELMPI b/wmake/rules/linuxIA64Icc/mplibINTELMPI
index 278e0b0f22c7c7d6fafc3334cddccb237afe232e..e5f0d01163d87759eb1b90d317fd8a61058ccb74 100644
--- a/wmake/rules/linuxIA64Icc/mplibINTELMPI
+++ b/wmake/rules/linuxIA64Icc/mplibINTELMPI
@@ -1,3 +1,3 @@
 PFLAGS     = -DMPICH_SKIP_MPICXX
-PINC       = -isystem $(MPI_ARCH_PATH)/include64
-PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
+PINC       = -isystem $(MPI_ARCH_PATH)/intel64/include
+PLIBS      = -L$(MPI_ARCH_PATH)/intel64/lib -lmpi