diff --git a/preprocessor/ModFile.cc b/preprocessor/ModFile.cc
index 94f5a1a59e22875fa67fe2158571e0718ab90ae6..d5f4646530ecd1e19a4ecd5e5ed02bb47f2e80ee 100644
--- a/preprocessor/ModFile.cc
+++ b/preprocessor/ModFile.cc
@@ -681,8 +681,13 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all, bool no_log, b
 #else
 # ifdef __linux__
       // MATLAB/Linux
-      mOutputFile << "    eval('mex -O LDFLAGS=''-pthread -shared -Wl,--no-undefined'' " << basename << "_dynamic.c " << basename << "_dynamic_mex.c')" << endl
-                  << "    eval('mex -O LDFLAGS=''-pthread -shared -Wl,--no-undefined'' " << basename << "_static.c "<< basename << "_static_mex.c')" << endl;
+      mOutputFile << "    if matlab_ver_less_than('8.3')" << endl
+                  << "        eval('mex -O LDFLAGS=''-pthread -shared -Wl,--no-undefined'' " << basename << "_dynamic.c " << basename << "_dynamic_mex.c')" << endl
+                  << "        eval('mex -O LDFLAGS=''-pthread -shared -Wl,--no-undefined'' " << basename << "_static.c "<< basename << "_static_mex.c')" << endl
+                  << "    else" << endl
+                  << "        eval('mex -O LINKEXPORT='''' " << basename << "_dynamic.c " << basename << "_dynamic_mex.c')" << endl
+                  << "        eval('mex -O LINKEXPORT='''' " << basename << "_static.c "<< basename << "_static_mex.c')" << endl
+                  << "    end" << endl;
 # else // MacOS
       // MATLAB/MacOS
       mOutputFile << "    if matlab_ver_less_than('8.1')" << endl;