diff --git a/etc/config/settings.sh b/etc/config/settings.sh
index 1ece2c9cff34fe8958df364a488fef09ae5b3087..f9110f768e24f5af5689ec32fe513e803602c8d4 100644
--- a/etc/config/settings.sh
+++ b/etc/config/settings.sh
@@ -526,13 +526,10 @@ QSMPI)
     ;;
 
 SGIMPI)
-    lastCharID=$(( ${#MPI_ROOT} - 1 ))
-    if [ "${MPI_ROOT:$lastCharID:1}" == '/' ]
-    then
-        MPI_ROOT=${MPI_ROOT:0:$lastCharID}
-    fi
+    # no trailing slash
+    [ "${MPI_ROOT%/}" = "${MPI_ROOT}" ] || MPI_ROOT="${MPI_ROOT%/}"
 
-    export FOAM_MPI=${MPI_ROOT##*/}
+    export FOAM_MPI="${MPI_ROOT##*/}"
     export MPI_ARCH_PATH=$MPI_ROOT
 
     if [ ! -d "$MPI_ROOT" -o -z "$MPI_ARCH_PATH" ]
@@ -555,13 +552,10 @@ SGIMPI)
     ;;
 
 INTELMPI)
-    lastCharID=$(( ${#MPI_ROOT} - 1 ))
-    if [ "${MPI_ROOT:$lastCharID:1}" == '/' ]
-    then
-        MPI_ROOT=${MPI_ROOT:0:$lastCharID}
-    fi
+    # no trailing slash
+    [ "${MPI_ROOT%/}" = "${MPI_ROOT}" ] || MPI_ROOT="${MPI_ROOT%/}"
 
-    export FOAM_MPI=${MPI_ROOT##*/}
+    export FOAM_MPI="${MPI_ROOT##*/}"
     export MPI_ARCH_PATH=$MPI_ROOT
 
     if [ ! -d "$MPI_ROOT" -o -z "$MPI_ARCH_PATH" ]