diff --git a/src/calc.c b/src/calc.c
index d6c29c11e595853eeed50d51ff14d8be00689835..a1a2001d2a0d39c738110f6e0ccbfdec4fd7773e 100644
--- a/src/calc.c
+++ b/src/calc.c
@@ -399,6 +399,15 @@ void calc_process() {
   stcalc.parent = t;
   stcalc.curdev = fs.st_dev;
 
+  /* update parents, if any */
+  if(stcalc.orig) {
+    for(t=t->parent; t!=NULL; t=t->parent) {
+      t->size += stcalc.parent->size;
+      t->asize += stcalc.parent->asize;
+      t->items++;
+    }
+  }
+
   /* start calculating */
   if(!calc_dir(stcalc.parent, tmp) && !stcalc.err) {
     pstate = ST_BROWSE;