diff --git a/bin/tools/buildParaView3.3-cvs b/bin/tools/buildParaView3.3-cvs
index 40a879cd24df6a7a48a11d2f71ac7b8a9ef967f7..d8e052712f20f9f9c1cbb726f2be7c5e335cf07c 100755
--- a/bin/tools/buildParaView3.3-cvs
+++ b/bin/tools/buildParaView3.3-cvs
@@ -28,48 +28,42 @@
 #
 # Description
 #     Build and install ParaView
-#     - run from folder above source folder
+#     - run from folder above ParaView source folder or place the
+#       ParaView source under $WM_PROJECT_INST_DIR
 #
 #------------------------------------------------------------------------------
-set -x
+. $WM_PROJECT_DIR/bin/tools/buildParaViewFunctions
 
-. $WM_PROJECT_DIR/bin/buildParaViewFunctions
+# set -x
 
 PARAVIEW_SRC="ParaView3.3-cvs"
-PARAVIEW_MAJOR_VERSION="3.2"
+PARAVIEW_MAJOR_VERSION="3.3"
 
-VERBOSE="OFF"
-INCLUDE_MPI="ON"
+VERBOSE=OFF
+INCLUDE_MPI=ON
 MPI_MAX_PROCS=32
-INCLUDE_PYTHON="ON"
+INCLUDE_PYTHON=ON
 #PYTHON_LIBRARY="/usr/lib64/libpython2.5.so.1.0"
 PYTHON_LIBRARY=""
-INCLUDE_MESA="OFF"
+INCLUDE_MESA=OFF
 
+set +x
 
-initialiseVariables
-
-# set MPI specific options
-if [ "$INCLUDE_MPI" = "ON" ]; then
-    addMpiSupport
+# provide a shortcut for repeated builds - use with caution
+if [ "$#" -gt 0 ]
+then
+   CMAKE_SKIP=YES
 fi
 
-# set python specific options
-if [ "$INCLUDE_PYTHON" = "ON" ]; then
-    addPythonSupport
-fi
+initialiseVariables
 
-# set MESA specific options
-if [ "$INCLUDE_MESA" = "ON" ]; then
-    addMesaSupport
-fi
+addMpiSupport       # set MPI specific options
+addPythonSupport    # set python specific options
+addMesaSupport      # set MESA specific options
 
 buildParaView
-
 installParaView
 
-# finalisation
-cd $PWD
-
-echo "done."
+echo "done"
 
+#------------------------------------------------------------------------------
diff --git a/bin/tools/buildParaViewFunctions b/bin/tools/buildParaViewFunctions
index 98f63346e31ee582d693bd0beee81a0b154397c6..c7e2afe1a4131a4e1f25e2a4df0d51842ca69289 100755
--- a/bin/tools/buildParaViewFunctions
+++ b/bin/tools/buildParaViewFunctions
@@ -31,32 +31,30 @@
 #
 #------------------------------------------------------------------------------
 
-initialiseVariables ()
+addCMakeVariable ()
 {
-    CMAKE_VARIABLES=""
-    PWD=`pwd`
-    OBJ_ADD=""
-
-    if [ "$VERBOSE" = "ON" ]; then
-        addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE"
-    fi
+    while [ -n "$1" ]
+    do
+        CMAKE_VARIABLES="$CMAKE_VARIABLES -D$1"
+        shift
+    done
 }
 
 
-addCMakeVariable ()
+initialiseVariables ()
 {
-    if [ -z "$1" ]; then
-        echo "*** Error: addCMakeVariable()"
-        echo "    No variable to add"
-        exit 1
-    fi
+    unset CMAKE_VARIABLES OBJ_ADD
 
-    CMAKE_VARIABLES="$CMAKE_VARIABLES -D$1"
+    if [ "$VERBOSE" = ON ]; then
+        addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE"
+    fi
 }
 
 
 addMpiSupport ()
 {
+    [ "$INCLUDE_MPI" = ON ] || return
+
     # using OpenFOAM variables to identify location of MPI libraries
     case "$WM_MPLIB" in
     OPENMPI)
@@ -75,24 +73,25 @@ addMpiSupport ()
         MPI_RUN=$MPICH_ARCH_PATH/bin/mpirun
         ;;
     *)
-
-    if [ "$INCLUDE_MPI" ]; then
-        OBJ_ADD="$OBJ_ADD-mpi"
-        addCMakeVariable "VTK_USE_MPI=ON"
-        addCMakeVariable "PARAVIEW_USE_MPI=ON"
-        addCMakeVariable "MPI_INCLUDE_PATH=$MPI_INCLUDE_PATH"
-        addCMakeVariable "MPI_LIBRARY=$MPI_LIBRARY"
-        addCMakeVariable "VTK_MPIRUN_EXE=$MPI_RUN"
-        addCMakeVariable "VTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS"
-    else
         echo "*** Error: unknown/unsupported mpi: $WM_MPLIB"
         exit 1
-    fi
+        ;;
+    esac
+
+    OBJ_ADD="$OBJ_ADD-mpi"
+    addCMakeVariable "VTK_USE_MPI=ON"
+    addCMakeVariable "PARAVIEW_USE_MPI=ON"
+    addCMakeVariable "MPI_INCLUDE_PATH=$MPI_INCLUDE_PATH"
+    addCMakeVariable "MPI_LIBRARY=$MPI_LIBRARY"
+    addCMakeVariable "VTK_MPIRUN_EXE=$MPI_RUN"
+    addCMakeVariable "VTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS"
 }
 
 
 addPythonSupport ()
 {
+    [ "$INCLUDE_PYTHON" = ON ] || return
+
     WHICH_PYTHON=`which python`
     if [ -n "$WHICH_PYTHON" ]; then
         OBJ_ADD="$OBJ_ADD-py"
@@ -139,6 +138,8 @@ addPythonSupport ()
 
 addMesaSupport ()
 {
+    [ "$INCLUDE_MESA" = ON ] || return
+
     MESA_INCLUDE_DIR=/usr/include/GL
     MESA_LIBRARY=/usr/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so
 
@@ -157,36 +158,60 @@ addMesaSupport ()
 buildParaView ()
 {
     # set general options
-    addCmakeVariable "DBUILD_SHARED_LIBS:BOOL=ON"
+    addCMakeVariable "BUILD_SHARED_LIBS:BOOL=ON"
 
     # set paraview environment
-    PARAVIEW_SRC_DIR=$PWD/$PARAVIEW_SRC
-    #PARAVIEW_OBJ_DIR=$PARAVIEW_SRC_DIR/platforms/$WM_OPTIONS/obj$OBJ_ADD
+    unset PARAVIEW_SRC_DIR
+    for i in $PWD $WM_PROJECT_INST_DIR
+    do
+       if [ -d $i/$PARAVIEW_SRC ]
+       then
+          PARAVIEW_SRC_DIR=$i/$PARAVIEW_SRC
+          break
+       fi
+    done
+
+    [ -d "$PARAVIEW_SRC_DIR" ] || {
+       echo "did not find $PARAVIEW_SRC in these directories:"
+       echo "  PWD=$PWD"
+       echo "  WM_PROJECT_INST_DIR=$WM_PROJECT_INST_DIR"
+       echo "abort build"
+       exit 1
+    }
+
+    # PARAVIEW_OBJ_DIR=$PARAVIEW_SRC_DIR/platforms/$WM_OPTIONS/obj$OBJ_ADD
     PARAVIEW_OBJ_DIR=$PARAVIEW_SRC_DIR/platforms/$WM_OPTIONS
 
-    # remove existing build folder if present
-    if [ -e "$PARAVIEW_OBJ_DIR" ]; then
-        rm -rf $PARAVIEW_OBJ_DIR
-    fi
+    # provide a shortcut for repeated builds - use with caution
+    if [ "$CMAKE_SKIP" = YES ]
+    then
+
+       # change to build folder
+       cd $PARAVIEW_OBJ_DIR || exit 1
 
-    # create paraview build folder
-    mkdir -p $PARAVIEW_OBJ_DIR
-    cd $PARAVIEW_OBJ_DIR
-
-    echo "Building $PARAVIEW_SRC"
-    echo "    MPI support    : $INCLUDE_MPI"
-    echo "    Python support : $INCLUDE_PYTHON"
-    echo "    MESA support   : $INCLUDE_MESA"
-    echo "    Source         : $PARAVIEW_SRC_DIR"
-    echo "    Target         : $PARAVIEW_OBJ_DIR"
-
-    # make paraview
-    # provide a backdoor to skip cmake for repeated builds
-    if [ -z "$build_no_cmake" ]; then
-        cmake \
-            -DCMAKE_INSTALL_PREFIX=$PARAVIEW_APP_DIR \
-            $CMAKE_VARIABLES \
-            $PARAVIEW_SRC_DIR
+    else
+
+       # remove existing build folder if present
+       if [ -e "$PARAVIEW_OBJ_DIR" ]; then
+           rm -rf $PARAVIEW_OBJ_DIR
+       fi
+
+       # create paraview build folder
+       mkdir -p $PARAVIEW_OBJ_DIR
+       cd $PARAVIEW_OBJ_DIR
+
+       echo "Building $PARAVIEW_SRC"
+       echo "    MPI support    : $INCLUDE_MPI"
+       echo "    Python support : $INCLUDE_PYTHON"
+       echo "    MESA support   : $INCLUDE_MESA"
+       echo "    Source         : $PARAVIEW_SRC_DIR"
+       echo "    Target         : $PARAVIEW_OBJ_DIR"
+
+       # make paraview
+       cmake \
+           -DCMAKE_INSTALL_PREFIX=$PARAVIEW_APP_DIR \
+           $CMAKE_VARIABLES \
+           $PARAVIEW_SRC_DIR
     fi
 
     if [ -r /proc/cpuinfo ]; then
@@ -217,10 +242,10 @@ installParaView ()
             -print
 
         # create a softlink to the $PARAVIEW_OBJ_DIR/bin folder
-        # - work-around for chosen install location
+        # - workaround for chosen install location
         echo "    Creating paraview $PARAVIEW_MAJOR_VERSION soft link to /bin"
-        ( mkdir lib && cd lib && ln -s ../bin \
-            paraview-$PARAVIEW_MAJOR_VERSION )
+        (  mkdir lib && cd lib && ln -s ../bin \
+            paraview-$PARAVIEW_MAJOR_VERSION  )
 
         # info on symlinks to screen
         echo ""
@@ -231,7 +256,16 @@ installParaView ()
         echo "    - ParaView_DIR to $PARAVIEW_OBJ_DIR"
         echo "    - PV_PLUGIN_PATH to $FOAM_LIBBIN"
         echo "    Add $PARAVIEW_OBJ_DIR/bin to PATH"
-        #echo "   Add $ParaView_INST_DIR/lib to LD_LIBRARY_PATH"
+        # echo "   Add $ParaView_INST_DIR/lib to LD_LIBRARY_PATH"
         echo "    ---"
     fi
 }
+
+
+# for good measure - clear a few variables before using any of the functions
+
+unset VERBOSE INCLUDE_MPI INCLUDE_PYTHON INCLUDE_MESA PYTHON_LIBRARY
+unset CMAKE_VARIABLES OBJ_ADD
+unset CMAKE_SKIP
+
+#------------------------------------------------------------------------------