diff --git a/openfisca_core/holders.py b/openfisca_core/holders.py
index <HASH>..<HASH> 100644
--- a/openfisca_core/holders.py
+++ b/openfisca_core/holders.py
@@ -2,18 +2,19 @@
 
 
 from __future__ import division
-import warnings
+import logging
+import shutil
 import os
+import warnings
 
 import numpy as np
+import psutil
 
 from commons import empty_clone
 import periods
 from periods import MONTH, YEAR, ETERNITY
 from columns import make_column_from_variable
 from indexed_enums import Enum, EnumArray
-import logging
-import psutil
 
 log = logging.getLogger(__name__)
 
@@ -528,6 +529,12 @@ class OnDiskStorage(object):
     def get_known_periods(self):
         return self._files.keys()
 
+    def __del__(self):
+        shutil.rmtree(self.storage_dir)  # Remove the holder temporary files
+        # If the simulation temporary directory is empty, remove it
+        parent_dir = os.path.abspath(os.path.join(self.storage_dir, os.pardir))
+        if not os.listdir(parent_dir):
+            shutil.rmtree(parent_dir)
 
 
 class InMemoryStorage(object):
Remove tmp files when simulation is done