diff --git a/build.sh b/build.sh
index 86693a6fdbb318f4ed45c0aa4d0456bcecfcaf87..f0c5dc91fc96de2ce15260aa0d1f211e731e7366 100755
--- a/build.sh
+++ b/build.sh
@@ -142,7 +142,16 @@ then
 fi
 
 # load autbuild provided shell functions and variables
-eval "$("$AUTOBUILD" source_environment)"
+if "$AUTOBUILD" source_environment > source_environment
+then
+  . source_environment
+else
+  # dump environment variables for debugging
+  env|sort
+  record_failure "autobuild source_environment failed"
+  cat source_environment >&3
+  exit 1
+fi
 
 # dump environment variables for debugging
 env|sort