diff --git a/coverage_reporter/reports/annotate.py b/coverage_reporter/reports/annotate.py
index <HASH>..<HASH> 100644
--- a/coverage_reporter/reports/annotate.py
+++ b/coverage_reporter/reports/annotate.py
@@ -1,12 +1,23 @@
 import os
+import shutil
 
 def add_options(parser):
     parser.add_option('--annotate-dir', dest='annotate_dir', action='store', default='annotate')
 
 def annotate(coverage_data, options):
     annotate_dir = options.annotate_dir
+    if os.path.exists(annotate_dir):
+        for root, dirs, files in os.walk(annotate_dir, topdown=False):
+            dirs = [ x for x in dirs if os.path.exists(os.path.join(root, x)) ]
+            to_remove = [ x for x in files if x.endswith(',cover') ]
+            to_keep = [ x for x in files if not x in to_remove ]
+            for x in to_remove:
+                os.remove(os.path.join(root, x))
+            if not (dirs or to_keep):
+                os.rmdir(root)
     if not os.path.exists(annotate_dir):
         os.makedirs(annotate_dir)
+
     curdir = os.getcwd()
     for path, lines in coverage_data.get_lines().iteritems():
         (total_lines, covered_lines) = lines
Remove existing annotated files on creation of new ones.