diff --git a/erp5/util/testnode/testnode.py b/erp5/util/testnode/testnode.py
index 4eb82091c105bd6a59c5c14a0a76742ced6e3ee0..9954501db56d5934000368ac1a9fb1f849f2bf18 100644
--- a/erp5/util/testnode/testnode.py
+++ b/erp5/util/testnode/testnode.py
@@ -408,14 +408,18 @@ branch = %(branch)s
       folder_path = os.path.join(temp_directory, temp_folder)
       if (temp_folder.startswith("tmp") or
           temp_folder.startswith("buildout")):
-        stat = os.stat(folder_path)
-        if stat.st_uid == user_id and \
-            (now - stat.st_mtime)/86400 > self.max_temp_time:
-          self.log("deleting temp directory %r" % (folder_path,))
-          if os.path.isdir(folder_path):
-            shutil.rmtree(folder_path)
-          else:
-            os.remove(folder_path)
+        try:
+          stat = os.stat(folder_path)
+          if stat.st_uid == user_id and \
+              (now - stat.st_mtime)/86400 > self.max_temp_time:
+            self.log("deleting temp directory %r" % (folder_path,))
+            if os.path.isdir(folder_path):
+              shutil.rmtree(folder_path)
+            else:
+              os.remove(folder_path)
+        except OSError:
+            log("_cleanupTemporaryFiles exception", exc_info=sys.exc_info())
+            raise
 
   def cleanUp(self,test_result):
     log = self.log