diff --git a/tests/run-tests.py b/tests/run-tests.py
index df580990507e73b351922609c040256b954fc352_dGVzdHMvcnVuLXRlc3RzLnB5..a46a91989d57b9919f333ed026500cf6ab010d0d_dGVzdHMvcnVuLXRlc3RzLnB5 100755
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -383,6 +383,8 @@
             killdaemons(entry)
 
         if self._threadtmp and not self._options.keep_tmpdir:
+            # Ignore failures here. The rmtree() in the higher level runner
+            # will try again.
             shutil.rmtree(self._threadtmp, True)
 
     def setUp(self):
@@ -525,7 +527,7 @@
         self._daemonpids = []
 
         if not self._options.keep_tmpdir:
-            shutil.rmtree(self._testtmp)
+            shutil.rmtree(self._testtmp, True)
 
         if (self._ret != 0 or self._out != self._refout) and not self._skipped \
             and not self._options.debug and self._out: