diff --git a/preprocessor/ModFile.cc b/preprocessor/ModFile.cc
index f681b4b1141149155e6cf9c08166afef46badb60..ab255fe3a82c9237824ee5abc1d2cb7d217e0a9f 100644
--- a/preprocessor/ModFile.cc
+++ b/preprocessor/ModFile.cc
@@ -287,10 +287,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;