diff --git a/build-update-package b/build-update-package
index ce03ed61e23e25b3c292f5683f06b2d86e535f5e..31a317e13f2fe945c00946f5e100484f6f20544e 100755
--- a/build-update-package
+++ b/build-update-package
@@ -19,7 +19,19 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
 # USA.
 
+# This function checks one file integrity
+check_file_integrity(){
+    FILE="$*"
+    FILEREAL="$(echo ${FILE} | sed "s#^${MD5DIRESC}##g")"
+
+    test -f "${AGENTPACKAGEDIR}/${FILEREAL}" || return 1
+    (md5sum "${AGENTPACKAGEDIR}/${FILEREAL}" | cut -d' ' -f1 | \
+     diff - "${FILE}" &> /dev/null) || return 1
+}
+
 PREFIX="$(dirname $0)"
+MD5DIR="${AGENTDIR}/${AGENTPACKAGEDIR}/.md5sum"
+MD5DIRESC="$(echo ${MD5DIR} | sed "s/\./\\\./g")"
 
 # Get the configuration
 if ! source "${PREFIX}/buildpackage.conf" 2> /dev/null; then
@@ -52,11 +64,27 @@ VERSION=$(cat ${VERSIONFILE})
 # Set the output file name
 OUTPUT="${UPDATEDIR}/SEED2-update-${VERSION}.run"
 
+# Change to agent directory
+cd "${AGENTDIR}"
+
+# -----------------------------------------------------------------------------
+# Check all MD5 files
+printf "Checking SEED2-run files integrity... "
+
+for FILE in $(find "${MD5DIR}" -type f); do
+    if ! check_file_integrity "${FILE}"; then
+        printf "ERROR: File(s) corrupted. Please, re-create integrity or %b"
+               "rebuild the agent files.\n"
+        exit 1
+    fi
+done
+
+printf "done.\n"
+
 # -----------------------------------------------------------------------------
 # Compress the agent files
 printf "Compressing SEED2-run files... "
 
-cd "${AGENTDIR}"
 TARFILE=$(tempfile --prefix=SEED2-tar)
 if ! tar -czf "${TARFILE}" SEED2-run; then
     printf "ERROR: Failed to compress the agent files.\n"