diff --git a/utils/analyzer/CmpRuns.py b/utils/analyzer/CmpRuns.py
index d20cd6a..8eba9eb 100755
--- a/utils/analyzer/CmpRuns.py
+++ b/utils/analyzer/CmpRuns.py
@@ -90,7 +90,7 @@
             return path[len(self.opts.root):]
         return path
 
-def loadResults(path, opts):
+def loadResults(path, opts, deleteEmpty=True):
     run = AnalysisRun(path, opts)
 
     for f in os.listdir(path):
@@ -101,8 +101,10 @@
         p = os.path.join(path, f)
         data = plistlib.readPlist(p)
 
-        # Ignore empty reports.
+        # Ignore/delete empty reports.
         if not data['files']:
+            if deleteEmpty == True:
+                os.remove(p)
             continue
 
         # Extract the HTML reports, if they exists.
@@ -175,10 +177,10 @@
 
     return res
 
-def cmpScanBuildResults(dirA, dirB, opts):
+def cmpScanBuildResults(dirA, dirB, opts, deleteEmpty=True):
     # Load the run results.
-    resultsA = loadResults(dirA, opts)
-    resultsB = loadResults(dirB, opts)
+    resultsA = loadResults(dirA, opts, deleteEmpty)
+    resultsB = loadResults(dirB, opts, deleteEmpty)
     
     # Open the verbose log, if given.
     if opts.verboseLog:
