diff --git a/preprocessor/ModFile.cc b/preprocessor/ModFile.cc
index 8358e8fa0e4935cf090f2d43fd77f754952ef137..5e50e8e067e6a0dbf3fe5445b0ad28f1a2999efe 100644
--- a/preprocessor/ModFile.cc
+++ b/preprocessor/ModFile.cc
@@ -300,10 +300,14 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all
 
   // Erase possible remnants of previous runs
   if (block || byte_code)
-    mOutputFile << "delete('" << basename << "_dynamic.m');" << endl;
+    mOutputFile << "if exist('" << basename << "_dynamic.m', 'file')" << endl
+                << "    delete('" << basename << "_dynamic.m');" << endl
+                << "end" << endl;
 
   if (byte_code)
-    mOutputFile << "delete('" << basename << "_static.m');" << endl;
+    mOutputFile << "if exist('" << basename << "_static.m', 'file')" << endl
+                << "    delete('" << basename << "_static.m');" << endl
+                << "end" << endl;
 
   if (!use_dll)
     mOutputFile << "erase_compiled_function('" + basename + "_dynamic');" << endl;