diff --git a/utils/nightly/gmsh.ctest b/utils/nightly/gmsh.ctest
index a070b8049a86e6ccc37b86b0a45c0209aa90a116..b18f1bd392befcf6644f6b55feb45e016e4c7bff 100644
--- a/utils/nightly/gmsh.ctest
+++ b/utils/nightly/gmsh.ctest
@@ -44,7 +44,10 @@ ctest_start(${CDASH_MODEL})
 ctest_update()
 ctest_configure()
 ctest_build(TARGET html)
-ctest_build(TARGET package)
+ctest_build(TARGET package NUMBER_ERRORS ERR)
+
+set(ENV{GMSH_BUILD_ERRORS} ${ERR})
+
 if(WITH_TEST)
   ctest_test()
 endif(WITH_TEST)
@@ -57,16 +60,22 @@ endif (WITH_MEMCHECK AND CTEST_MEMORYCHECK_COMMAND)
 ctest_submit()
 
 macro(upload_package WEB ARCH EXTRA EXT1 EXT2)
-  file(GLOB FILE ${CTEST_BINARY_DIRECTORY}/gmsh-*${EXT1})
-  if(FILE)
-    if(${FILE} MATCHES "-svn")
-      execute_process(COMMAND scp -C ${FILE} ${WEB}/gmsh-svn-${ARCH}${EXTRA}${EXT2}
-                      TIMEOUT 60)
-    else(${FILE} MATCHES "-svn")
-      get_filename_component(NAME ${FILE} NAME)
-      string(REPLACE ${EXT1} "" BASE ${NAME})
-      execute_process(COMMAND scp -C ${FILE} ${WEB}/${BASE}${EXTRA}${EXT2}
-                      TIMEOUT 60)
-    endif(${FILE} MATCHES "-svn")
-  endif(FILE)
+  if($ENV{GMSH_BUILD_ERRORS} GREATER 0)
+    message("Build reported $ENV{GMSH_BUILD_ERRORS} errors: skipping upload")
+    set(ENV{GMSH_BUILD_ERRORS} 0)
+  else($ENV{GMSH_BUILD_ERRORS} GREATER 0)
+    message("Build succeeded: uploading package to web site")
+    file(GLOB FILE ${CTEST_BINARY_DIRECTORY}/gmsh-*${EXT1})
+    if(FILE)
+      if(${FILE} MATCHES "-svn")
+        execute_process(COMMAND scp -C ${FILE} ${WEB}/gmsh-svn-${ARCH}${EXTRA}${EXT2}
+                        TIMEOUT 60)
+      else(${FILE} MATCHES "-svn")
+        get_filename_component(NAME ${FILE} NAME)
+        string(REPLACE ${EXT1} "" BASE ${NAME})
+        execute_process(COMMAND scp -C ${FILE} ${WEB}/${BASE}${EXTRA}${EXT2}
+                        TIMEOUT 60)
+      endif(${FILE} MATCHES "-svn")
+    endif(FILE)
+  endif($ENV{GMSH_BUILD_ERRORS} GREATER 0)
 endmacro(upload_package)