diff --git a/CMakeLists.txt b/CMakeLists.txt
index a2cbf61d114953e771c9770f0d78cbcc4816f9d1..ccbec4b74e12dea791839469e8d2187aff3850d6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1159,21 +1159,25 @@ else(HAVE_FLTK)
 endif(HAVE_FLTK)
 target_link_libraries(gmsh ${LINK_LIBRARIES})
 
-# increase stack to 16Mb on Windows to avoid overflows in recursive
-# tet classification for large 3D Delaunay grids + force static
-# linking of system libraries with cygwin/mingw (to ease distribution 
-# andspeed up app startup time)
+# Windows specific linker options
 if(WIN32 AND NOT MSVC OR CYGWIN)
+  set_target_properties(gmsh PROPERTIES LINK_FLAGS "-Wl,--stack,16777216 -mwindows")
   if(HAVE_64BIT_SIZE_T)
     set_target_properties(gmsh PROPERTIES LINK_FLAGS 
-      "-Wl,--stack,16777216 ${CMAKE_CURRENT_SOURCE_DIR}/Fltk/Win64Icon.res -mwindows -static")
+      "${CMAKE_CURRENT_SOURCE_DIR}/Fltk/Win64Icon.res")
   else(HAVE_64BIT_SIZE_T)
     set_target_properties(gmsh PROPERTIES LINK_FLAGS 
-      "-Wl,--stack,16777216 ${CMAKE_CURRENT_SOURCE_DIR}/Fltk/Win32Icon.res -mwindows -static")
+      "${CMAKE_CURRENT_SOURCE_DIR}/Fltk/Win32Icon.res")
   endif(HAVE_64BIT_SIZE_T)
-  # remove stupid -Wl,-Bdynamic flags
-  set(CMAKE_EXE_LINK_DYNAMIC_C_FLAGS)
-  set(CMAKE_EXE_LINK_DYNAMIC_CXX_FLAGS)
+  if(ENABLE_BUILD_DYNAMIC)
+    set_target_properties(shared PROPERTIES LINK_FLAGS "-Wl,--export-all-symbols")
+    set_target_properties(gmsh PROPERTIES LINK_FLAGS "-Wl,--enable-auto-import")
+  else(ENABLE_BUILD_DYNAMIC)
+    set_target_properties(gmsh PROPERTIES LINK_FLAGS "-static")
+    # remove -Wl,-Bdynamic flags
+    set(CMAKE_EXE_LINK_DYNAMIC_C_FLAGS)
+    set(CMAKE_EXE_LINK_DYNAMIC_CXX_FLAGS)
+  endif(ENABLE_BUILD_DYNAMIC)
 elseif(MSVC)
   set_target_properties(gmsh PROPERTIES LINK_FLAGS "/STACK:16777216")
 endif(WIN32 AND NOT MSVC OR CYGWIN)
diff --git a/utils/nightly/gmsh_win64_nightly.bat b/utils/nightly/gmsh_win64_nightly.bat
index e343924e6511c2d2fed2ea5e6784a77196e95d60..1d74d859a8d3bddc1ae84520e85d047742f21cb9 100755
--- a/utils/nightly/gmsh_win64_nightly.bat
+++ b/utils/nightly/gmsh_win64_nightly.bat
@@ -5,4 +5,4 @@ chdir C:\cygwin\bin
 
 bash --login -c "cd ${HOME}/src/gmsh/utils/nightly && ctest -S gmsh_win64_nightly.ctest -VV > ${HOME}/src/gmsh/nightly.log 2>&1"
 
-REM bash --login -c "cd ${HOME}/src/gmsh/utils/nightly && ctest -S gmsh_win64_dynamic_nightly.ctest -VV > ${HOME}/src/gmsh/nightly_dynamic.log 2>&1"
+bash --login -c "cd ${HOME}/src/gmsh/utils/nightly && ctest -S gmsh_win64_dynamic_nightly.ctest -VV > ${HOME}/src/gmsh/nightly_dynamic.log 2>&1"