diff --git a/Solver/function.cpp b/Solver/function.cpp
index cf4dcf5b7f2ca976e66cd34eb6534e8a3d9fc9cd..effa05277a494e3ae7c1a822c4d2a3cee370e5d3 100644
--- a/Solver/function.cpp
+++ b/Solver/function.cpp
@@ -5,10 +5,12 @@
 #include "SPoint3.h"
 #include "MElement.h"
 #include "GModel.h"
+#include "OS.h"
+#include "Bindings.h"
+
 #if defined(HAVE_DLOPEN)
-  #include "dlfcn.h"
+#include <dlfcn.h>
 #endif
-#include "Bindings.h"
 
 struct functionReplaceCache {
   dataCacheMap *map;
@@ -603,8 +605,8 @@ class functionC : public function {
     fclose(tmpMake);
     if(system("make -f _tmpMake"))
       Msg::Error("make command failed\n");
-    unlink ("_tmpSrc.cpp");
-    unlink ("_tmpMake.cpp");
+    UnlinkFile("_tmpSrc.cpp");
+    UnlinkFile("_tmpMake.cpp");
   }
   void call (dataCacheMap *m, fullMatrix<double> &val) 
   {