diff --git a/src/ModFile.cc b/src/ModFile.cc
index 925694d228e5a2016c9548f887cb2cab5f674179..4e7c175f561fabd20ff98a6240537efda8e6d426 100644
--- a/src/ModFile.cc
+++ b/src/ModFile.cc
@@ -761,12 +761,13 @@ ModFile::computingPass(bool no_tmp_terms, OutputType output, int params_derivs_o
 void
 ModFile::remove_directory_with_matlab_lock(const filesystem::path &dir)
 {
-  if (!exists(dir))
+  auto dirStatus {status(dir)};
+  if (!exists(dirStatus))
     return;
 
-  if (is_directory(dir))
+  if (is_directory(dirStatus))
     for (const auto &e : filesystem::directory_iterator{dir})
-      if (is_directory(e))
+      if (e.is_directory())
         remove_directory_with_matlab_lock(e);
 
   auto tmp {unique_path()};