diff --git a/configure.ac b/configure.ac
index 700889a8cff37ea167670cb4a1f13a5b3316cd92..2ccc980af173a421fe8915fc1503fb38cf7fe982 100644
--- a/configure.ac
+++ b/configure.ac
@@ -30,23 +30,22 @@ AX_CXX_COMPILE_STDCXX_14
 AC_CANONICAL_HOST
 case ${host_os} in
   *mingw32*)
-    # On mingw32, we don't want dynamic libgcc
-    # Note that static-libstdc++ is only supported since GCC 4.5 (but generates no error on older versions)
-    LDFLAGS="$LDFLAGS -static-libgcc -static-libstdc++ -static-libgfortran"
-    have_windows="yes"
+    # On Windows, we don't want dynamic linking
+    AM_LDFLAGS="-static"
+    AC_SUBST([AM_LDFLAGS])
     ;;
   *cygwin*)
     AC_MSG_WARN([You are compiling for the Cygwin target. This means that the preprocessor will])
     AC_MSG_WARN([not run from MATLAB unless you add the Cygwin DLL to the path.])
     AC_MSG_WARN([This is probably not what you want. Consider using a MinGW cross-compiler.])
-    have_windows="yes"
     ;;
 esac
 
 # Use C++ for testing headers
 AC_LANG([C++])
 
-CXXFLAGS="$CXXFLAGS -Wall -Wno-parentheses"
+AM_CXXFLAGS="-Wall -Wno-parentheses"
+AC_SUBST([AM_CXXFLAGS])
 
 # If default 'ar' is not available, try to find one with a host prefix (see ticket #145)
 AC_CHECK_PROGS([AR], [ar ${host_alias}-ar])
diff --git a/src/Makefile.am b/src/Makefile.am
index 1756b9212f179f58fe26c7670887fcf148c11486..71099dcbedea595230186410bc7a82a167ba91b4 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -65,7 +65,7 @@ EXTRA_DIST = \
 
 # The -I. is for <FlexLexer.h>
 dynare_m_CPPFLAGS = $(BOOST_CPPFLAGS) -I.
-dynare_m_LDFLAGS = $(BOOST_LDFLAGS)
+dynare_m_LDFLAGS = $(AM_LDFLAGS) $(BOOST_LDFLAGS)
 dynare_m_LDADD = macro/libmacro.a $(BOOST_FILESYSTEM_LIB) $(BOOST_SYSTEM_LIB)
 
 DynareFlex.cc FlexLexer.h: DynareFlex.ll