diff --git a/src/dir_scan.c b/src/dir_scan.c
index 57f96b3d46a3757b663b3f9ffa61b0d8a028c1e2..2953421e0ec9aca2dfdfdcea8160ad087302b97c 100644
--- a/src/dir_scan.c
+++ b/src/dir_scan.c
@@ -197,8 +197,10 @@ static int dir_scan_item(struct dir *d) {
     stat_to_dir(d, &st);
 
   if(cachedir_tags && (d->flags & FF_DIR) && !(d->flags & (FF_ERR|FF_EXL|FF_OTHFS)))
-    if(has_cachedir_tag(d->name))
+    if(has_cachedir_tag(d->name)) {
       d->flags |= FF_EXL;
+      d->size = d->asize = 0;
+    }
 
   /* Recurse into the dir or output the item */
   if(d->flags & FF_DIR && !(d->flags & (FF_ERR|FF_EXL|FF_OTHFS)))