diff --git a/installsystems/repository.py b/installsystems/repository.py
index 24d3a55ca9d008b736f361ecf376346cfc74c567..6995f093a0426c9ea48d3527d1c4b1fdf0f2dee1 100644
--- a/installsystems/repository.py
+++ b/installsystems/repository.py
@@ -232,18 +232,27 @@ class Repository(object):
         if not istools.isfile(self.config.path):
             raise Exception("Repository must be local")
         local_files = set(os.listdir(self.config.path))
+        local_files.remove(self.config.dbname)
+        local_files.remove(self.config.lastname)
         db_files = set(self.getallmd5())
-        db_files.add(self.config.dbname)
-        db_files.add( self.config.lastname)
-        # compute missing and unref files list
+        # check missing files
+        arrow("Checking missing files")
         missing_files = db_files - local_files
-        unref_files = local_files - db_files
         if len(missing_files) > 0:
-            arrow("Missing files:")
             out(os.linesep.join(missing_files))
+        # check unreferenced files
+        arrow("Checking unreferenced files")
+        unref_files = local_files - db_files
         if len(unref_files) > 0:
-            arrow("Unreferenced files:")
             out(os.linesep.join(unref_files))
+        # check corruption of local files
+        arrow("Checking corrupted files")
+        for f in local_files:
+            fo = PipeFile(f)
+            fo.consume()
+            fo.close()
+            if fo.md5 != f:
+                out(f)
 
     def clean(self):
         '''