diff --git a/etc/config/settings.csh b/etc/config/settings.csh
index 2b0a132ebca31976263356d13850deae79525b33..2566cd6a9acb0027922c53a016749de767351f08 100644
--- a/etc/config/settings.csh
+++ b/etc/config/settings.csh
@@ -512,6 +512,36 @@ case SGIMPI:
     _foamAddLib     $MPI_ARCH_PATH/lib
     breaksw
 
+case INTELMPI:
+    if ( ! $?MPI_ROOT) setenv MPI_ROOT /dummy
+
+    if ( ! -d "$MPI_ROOT" ) then
+        echo "Warning in $WM_PROJECT_DIR/etc/config/settings.csh:"
+        echo "    MPI_ROOT not a valid mpt installation directory."
+        echo "    Please set MPI_ROOT to the mpt installation directory."
+        echo "    (usually done by loading the mpt module)"
+        echo "    MPI_ROOT currently set to '$MPI_ROOT'"
+    endif
+
+    if ( "${MPI_ROOT:h}/" == $MPI_ROOT ) then
+        setenv MPI_ROOT ${MPI_ROOT:h}
+    endif
+
+    setenv FOAM_MPI ${MPI_ROOT:t}
+    setenv MPI_ARCH_PATH $MPI_ROOT
+
+
+    if ($?FOAM_VERBOSE && $?prompt) then
+        echo "Using INTEL MPT:"
+        echo "    MPI_ROOT : $MPI_ROOT"
+        echo "    FOAM_MPI : $FOAM_MPI"
+    endif
+
+
+    _foamAddPath    $MPI_ARCH_PATH/bin64
+    _foamAddLib     $MPI_ARCH_PATH/lib64
+    breaksw
+
 default:
     setenv FOAM_MPI dummy
     breaksw
diff --git a/etc/config/settings.sh b/etc/config/settings.sh
index e56afffa179418e1b97ff2d6205c6eade342526e..55810e6e9f18f038f56e8efaa064fa540a43a8a3 100644
--- a/etc/config/settings.sh
+++ b/etc/config/settings.sh
@@ -534,6 +534,34 @@ SGIMPI)
     _foamAddLib     $MPI_ARCH_PATH/lib
     ;;
 
+INTELMPI)
+    lastCharID=$(( ${#MPI_ROOT} - 1 ))
+    if [ "${MPI_ROOT:$lastCharID:1}" == '/' ]
+    then
+        MPI_ROOT=${MPI_ROOT:0:$lastCharID}
+    fi
+
+    export FOAM_MPI=${MPI_ROOT##*/}
+    export MPI_ARCH_PATH=$MPI_ROOT
+
+    if [ ! -d "$MPI_ROOT" -o -z "$MPI_ARCH_PATH" ]
+    then
+        echo "Warning in $WM_PROJECT_DIR/etc/config/settings.sh:" 1>&2
+        echo "    MPI_ROOT not a valid mpt installation directory or ending in a '/'." 1>&2
+        echo "    Please set MPI_ROOT to the mpt installation directory." 1>&2
+        echo "    MPI_ROOT currently set to '$MPI_ROOT'" 1>&2
+    fi
+
+    if [ "$FOAM_VERBOSE" -a "$PS1" ]
+    then
+        echo "Using INTEL MPI:"
+        echo "    MPI_ROOT : $MPI_ROOT"
+        echo "    FOAM_MPI : $FOAM_MPI"
+    fi
+
+    _foamAddPath    $MPI_ARCH_PATH/bin64
+    _foamAddLib     $MPI_ARCH_PATH/lib64
+    ;;
 *)
     export FOAM_MPI=dummy
     ;;
diff --git a/wmake/rules/linux64Clang/mplibINTELMPI b/wmake/rules/linux64Clang/mplibINTELMPI
new file mode 100644
index 0000000000000000000000000000000000000000..cf80ec2eaf68d1c2f6adf208964b6490c4c8fd36
--- /dev/null
+++ b/wmake/rules/linux64Clang/mplibINTELMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DMPICH_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include64
+PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
diff --git a/wmake/rules/linux64Gcc++0x/mplibINTELMPI b/wmake/rules/linux64Gcc++0x/mplibINTELMPI
new file mode 100644
index 0000000000000000000000000000000000000000..cf80ec2eaf68d1c2f6adf208964b6490c4c8fd36
--- /dev/null
+++ b/wmake/rules/linux64Gcc++0x/mplibINTELMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DMPICH_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include64
+PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
diff --git a/wmake/rules/linux64Gcc/mplibINTELMPI b/wmake/rules/linux64Gcc/mplibINTELMPI
new file mode 100644
index 0000000000000000000000000000000000000000..cf80ec2eaf68d1c2f6adf208964b6490c4c8fd36
--- /dev/null
+++ b/wmake/rules/linux64Gcc/mplibINTELMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DMPICH_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include64
+PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
diff --git a/wmake/rules/linux64Gcc43/mplibINTELMPI b/wmake/rules/linux64Gcc43/mplibINTELMPI
new file mode 100644
index 0000000000000000000000000000000000000000..cf80ec2eaf68d1c2f6adf208964b6490c4c8fd36
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplibINTELMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DMPICH_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include64
+PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
diff --git a/wmake/rules/linux64Gcc44/mplibINTELMPI b/wmake/rules/linux64Gcc44/mplibINTELMPI
new file mode 100644
index 0000000000000000000000000000000000000000..cf80ec2eaf68d1c2f6adf208964b6490c4c8fd36
--- /dev/null
+++ b/wmake/rules/linux64Gcc44/mplibINTELMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DMPICH_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include64
+PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
diff --git a/wmake/rules/linux64Gcc45/mplibINTELMPI b/wmake/rules/linux64Gcc45/mplibINTELMPI
new file mode 100644
index 0000000000000000000000000000000000000000..cf80ec2eaf68d1c2f6adf208964b6490c4c8fd36
--- /dev/null
+++ b/wmake/rules/linux64Gcc45/mplibINTELMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DMPICH_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include64
+PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
diff --git a/wmake/rules/linux64Gcc46/mplibINTELMPI b/wmake/rules/linux64Gcc46/mplibINTELMPI
new file mode 100644
index 0000000000000000000000000000000000000000..cf80ec2eaf68d1c2f6adf208964b6490c4c8fd36
--- /dev/null
+++ b/wmake/rules/linux64Gcc46/mplibINTELMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DMPICH_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include64
+PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
diff --git a/wmake/rules/linux64Icc/mplibINTELMPI b/wmake/rules/linux64Icc/mplibINTELMPI
new file mode 100644
index 0000000000000000000000000000000000000000..cf80ec2eaf68d1c2f6adf208964b6490c4c8fd36
--- /dev/null
+++ b/wmake/rules/linux64Icc/mplibINTELMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DMPICH_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include64
+PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
diff --git a/wmake/rules/linuxIA64Icc/mplibINTELMPI b/wmake/rules/linuxIA64Icc/mplibINTELMPI
new file mode 100644
index 0000000000000000000000000000000000000000..cf80ec2eaf68d1c2f6adf208964b6490c4c8fd36
--- /dev/null
+++ b/wmake/rules/linuxIA64Icc/mplibINTELMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DMPICH_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include64
+PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi