diff --git a/bin/foamExec b/bin/foamExec
index 509ed5d83cb8cecdef7fabfef8c11c1bab0fb39f..7a93bfb6132273df060a6823980f9090d0f5ea09 100755
--- a/bin/foamExec
+++ b/bin/foamExec
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #------------------------------------------------------------------------------
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
diff --git a/bin/foamJob b/bin/foamJob
index 20793c3d52079b137a8fca3d9dd58f5ce7857ec1..7fa5c8174e68259ae7b2e4ef3a719fefc4878fca 100755
--- a/bin/foamJob
+++ b/bin/foamJob
@@ -40,6 +40,7 @@ options:
   -case <dir>       specify alternative case directory, default is the cwd
   -parallel         parallel run of processors
   -screen           also sends output to screen
+  -wait             wait for execution to complete (when not using -screen)
   -version <ver>    specify an alternative OpenFOAM version
   -help             print the usage
 
@@ -108,7 +109,7 @@ findExec() {
 
 # MAIN SCRIPT
 #~~~~~~~~~~~~
-unset parallelOpt screenOpt
+unset parallelOpt screenOpt waitOpt
 
 
 # parse options
@@ -131,6 +132,10 @@ do
       screenOpt=true
       shift
       ;;
+   -w | -wait)
+      waitOpt=true
+      shift
+      ;;
    -v | -version)
       [ "$#" -ge 2 ] || usage "'$1' option requires an argument"
       version="$2"
@@ -231,6 +236,13 @@ then
                 break
             fi
         done
+
+        #
+        # Send FOAM_SETTINGS to parallel processes, so that the proper
+        # definitions are sent as well.
+        #
+        mpiopts="$mpiopts -x FOAM_SETTINGS"
+
         ;;
     esac
 
@@ -244,6 +256,12 @@ then
     else
         echo "Executing: $mpirun $mpiopts $APPLICATION $(echoArgs "$@") -parallel > log 2>&1"
         $mpirun $mpiopts $APPLICATION "$@" -parallel > log 2>&1 &
+
+        pid=$!
+        if [ "$waitOpt" = true ]
+        then
+            wait $pid
+        fi
     fi
 
 else
@@ -258,6 +276,12 @@ else
     else
         echo "Executing: $APPLICATION $(echoArgs "$@") > log 2>&1 &"
         $APPLICATION "$@" > log 2>&1 &
+
+        pid=$!
+        if [ "$waitOpt" = true ]
+        then
+            wait $pid
+        fi
     fi
 fi
 
diff --git a/etc/config/aliases.csh b/etc/config/aliases.csh
index 1d8b0e837c57d38f2d7d018df967def02861b0c1..a006be18cdec4b542ab7d76032004eaf52076d19 100644
--- a/etc/config/aliases.csh
+++ b/etc/config/aliases.csh
@@ -38,8 +38,11 @@ alias wm32 'wmSET WM_ARCH_OPTION=32'
 alias wmSP 'wmSET WM_PRECISION_OPTION=SP'
 alias wmDP 'wmSET WM_PRECISION_OPTION=DP'
 
+# refresh the environment
+alias wmREFRESH 'wmSET $FOAM_SETTINGS'
+
 # clear env
-alias wmUNSET='source $WM_PROJECT_DIR/etc/config/unset.csh'
+alias wmUNSET 'source $WM_PROJECT_DIR/etc/config/unset.csh'
 
 # Toggle wmakeScheduler on/off
 #  - also need to set WM_HOSTS
diff --git a/etc/config/aliases.sh b/etc/config/aliases.sh
index ea5a25a82a6f1735d797ff23756e66da99e74c55..6efa8e10f505b4d1c1b94f91d37bde14cc60d03b 100644
--- a/etc/config/aliases.sh
+++ b/etc/config/aliases.sh
@@ -38,6 +38,9 @@ alias wm32='wmSET WM_ARCH_OPTION=32'
 alias wmSP='wmSET WM_PRECISION_OPTION=SP'
 alias wmDP='wmSET WM_PRECISION_OPTION=DP'
 
+# refresh the environment
+alias wmREFRESH='wmSET $FOAM_SETTINGS'
+
 # clear env
 alias wmUNSET='. $WM_PROJECT_DIR/etc/config/unset.sh'