diff --git a/Build/AtlasBuildScripts/build_Gaudi.sh b/Build/AtlasBuildScripts/build_Gaudi.sh
index 71c8fc25bbbf9b78f33c719dd7a8770738b8b12b..9b27a23fa6322e4211b646684c13565808293ee6 100755
--- a/Build/AtlasBuildScripts/build_Gaudi.sh
+++ b/Build/AtlasBuildScripts/build_Gaudi.sh
@@ -85,17 +85,35 @@ cd ${BUILDDIR} || ((ERROR_COUNT++))
 # Set up the externals project:
 source ${EXTDIR}/setup.sh || ((ERROR_COUNT++))
 
+#FIXME: simplify error counting below while keeping '| tee ...'
+
 # Configure the build:
+error_stamp=`mktemp .tmp.error.XXXXX` ; rm -f $error_stamp
+{
 cmake -DCMAKE_BUILD_TYPE:STRING=${BUILDTYPE} -DCTEST_USE_LAUNCHERS:BOOL=TRUE \
     -DGAUDI_ATLAS:BOOL=TRUE -DGAUDI_ATLAS_BASE_PROJECT:STRING=${EXTPROJECT} \
     -DCMAKE_INSTALL_PREFIX:PATH=/InstallArea/${PLATFORM} \
-    ${SOURCEDIR} 2>&1 | tee cmake_config.log || ((ERROR_COUNT++))
+    ${SOURCEDIR} || touch $error_stamp
+} 2>&1 | tee cmake_config.log 
+test -f $error_stamp && ((ERROR_COUNT++))
+rm -f $error_stamp
 
 # Build it:
-make -k || ((ERROR_COUNT++))
+error_stamp=`mktemp .tmp.error.XXXXX` ; rm -f $error_stamp
+{
+make -k || touch $error_stamp
+} 2>&1 | tee cmake_build.log
+test -f $error_stamp && ((ERROR_COUNT++))
+rm -f $error_stamp
+
 
 # Install it:
-make -k install/fast DESTDIR=${INSTALLDIR} || ((ERROR_COUNT++))
+error_stamp=`mktemp .tmp.error.XXXXX` ; rm -f $error_stamp
+{
+make -k install/fast DESTDIR=${INSTALLDIR} || touch $error_stamp
+} 2>&1 | tee cmake_install.log
+test -f $error_stamp && ((ERROR_COUNT++))
+rm -f $error_stamp
 
 # If no RPM directory was specified, stop here:
 if [ "$RPMDIR" = "" ]; then
@@ -103,9 +121,19 @@ if [ "$RPMDIR" = "" ]; then
 fi
 
 # Build the RPM for the project:
-cpack || ((ERROR_COUNT++))
-mkdir -p ${RPMDIR} || ((ERROR_COUNT++))
-cp GAUDI*.rpm ${RPMDIR} || ((ERROR_COUNT++))
+error_stamp=`mktemp .tmp.error.XXXXX` ; rm -f $error_stamp
+{
+cpack || touch $error_stamp
+} 2>&1 | tee cmake_cpack.log
+test -f $error_stamp && ((ERROR_COUNT++))
+rm -f $error_stamp
+
+error_stamp=`mktemp .tmp.error.XXXXX` ; rm -f $error_stamp
+{
+mkdir -p ${RPMDIR} && cp GAUDI*.rpm ${RPMDIR} || touch $error_stamp
+} 2>&1 | tee cp_rpm.log
+test -f $error_stamp && ((ERROR_COUNT++))
+rm -f $error_stamp
 
 if [ $ERROR_COUNT -ne 0 ]; then
 	echo "Gaudi build script counted $ERROR_COUNT errors"
diff --git a/Build/AtlasBuildScripts/build_atlasexternals.sh b/Build/AtlasBuildScripts/build_atlasexternals.sh
index 255698264ccfc79a6ff0198513a7fbd80546195a..a77eece843bbdba7aafe77d231e1b1b32c332144 100755
--- a/Build/AtlasBuildScripts/build_atlasexternals.sh
+++ b/Build/AtlasBuildScripts/build_atlasexternals.sh
@@ -79,16 +79,34 @@ if [ "$PROJECTVERSION" != "" ]; then
     EXTRACONF=-D${PNAME}_PROJECT_VERSION:STRING=${PROJECTVERSION}
 fi
 
+#FIXME: simplify error counting:
+
 # Configure the build:
-cmake -DCMAKE_BUILD_TYPE:STRING=${BUILDTYPE} -DCTEST_USE_LAUNCHERS:BOOL=TRUE \
+error_stamp=`mktemp .tmp.error.XXXXX` ; rm -f $error_stamp
+{
+ cmake -DCMAKE_BUILD_TYPE:STRING=${BUILDTYPE} -DCTEST_USE_LAUNCHERS:BOOL=TRUE \
     ${EXTRACONF} \
-    ${SOURCEDIR}/Projects/${PROJECT}/ 2>&1 | tee cmake_config.log || ((ERROR_COUNT++))
+    ${SOURCEDIR}/Projects/${PROJECT}/ || touch $error_stamp
+} 2>&1 | tee cmake_config.log 
+test -f $error_stamp && ((ERROR_COUNT++))
+rm -f $error_stamp #FIXME: w/o $error_stamp one can't pass the status outside  { ... } | tee ... shell
 
 # Build it:
-make -k || ((ERROR_COUNT++))
+error_stamp=`mktemp .tmp.error.XXXXX` ; rm -f $error_stamp
+{
+ make -k || touch $error_stamp
+} 2>&1 | tee cmake_build.log
+test -f $error_stamp && ((ERROR_COUNT++))
+rm -f $error_stamp 
 
 # Install it:
-make -k install/fast DESTDIR=${INSTALLDIR} || ((ERROR_COUNT++))
+error_stamp=`mktemp .tmp.error.XXXXX` ; rm -f $error_stamp
+{
+ make -k install/fast DESTDIR=${INSTALLDIR} || touch $error_stamp
+} 2>&1 | tee cmake_install.log
+test -f $error_stamp && ((ERROR_COUNT++))
+rm -f $error_stamp 
+ 
 
 # If no RPM directory was specified, stop here:
 if [ "$RPMDIR" = "" ]; then
@@ -96,10 +114,21 @@ if [ "$RPMDIR" = "" ]; then
 fi
 
 # Build the RPM or other package for the project:
-cpack || ((ERROR_COUNT++))
-mkdir -p ${RPMDIR} || ((ERROR_COUNT++))
-FILES=$(ls ${PROJECT}*.rpm ${PROJECT}*.tar.gz ${PROJECT}*.dmg 2> /dev/null)
-cp ${FILES} ${RPMDIR} || ((ERROR_COUNT++))
+error_stamp=`mktemp .tmp.error.XXXXX` ; rm -f $error_stamp
+{
+cpack || touch $error_stamp
+} 2>&1 | tee cmake_cpack.log
+test -f $error_stamp && ((ERROR_COUNT++))
+rm -f $error_stamp 
+    
+error_stamp=`mktemp .tmp.error.XXXXX` ; rm -f $error_stamp
+{
+ mkdir -p ${RPMDIR} && \
+ FILES=$(ls ${PROJECT}*.rpm ${PROJECT}*.tar.gz ${PROJECT}*.dmg 2> /dev/null) && \
+ cp ${FILES} ${RPMDIR} || touch $error_stamp
+} 2>&1 | tee cp_rpm.log
+test -f $error_stamp && ((ERROR_COUNT++))
+rm -f $error_stamp 
 
 if [ $ERROR_COUNT -ne 0 ]; then
 	echo "AtlasExternals build script counted $ERROR_COUNT errors"