diff --git a/dynare++/Makefile.am b/dynare++/Makefile.am
index 1145fb694f6b11c01cacc97b5ee1ba809d1a1352..881f5fca76ad82972bcc8413934ffde229b376a0 100644
--- a/dynare++/Makefile.am
+++ b/dynare++/Makefile.am
@@ -1,3 +1,3 @@
 SUBDIRS = sylv parser/cc tl doc utils/cc integ kord src
 
-EXTRA_DIST = change_log.html c++lib.w tests
+EXTRA_DIST = change_log.html c++lib.w tests extern
diff --git a/mex/build/dynare_simul_.am b/mex/build/dynare_simul_.am
index 672adb696e7f4e58d95bb810b89da61c6f1def6c..b9a12eae9964711ba7624b4cee5fffaa14f20a1c 100644
--- a/mex/build/dynare_simul_.am
+++ b/mex/build/dynare_simul_.am
@@ -5,6 +5,9 @@ noinst_PROGRAMS = dynare_simul_
 # Can't use gensylv_CPPFLAGS, because it interacts badly with VPATH
 CPPFLAGS += -I$(top_srcdir)/../../../dynare++/sylv/cc -I$(top_srcdir)/../../../dynare++/tl/cc -I$(top_srcdir)/../../../dynare++/kord -I$(top_srcdir)/../../sources
 
-dynare_simul__LDADD = ../libdynare++/libdynare++.a
+CXXFLAGS += $(PTHREAD_CFLAGS)
+
+# libdynare++ must come before pthread
+dynare_simul__LDADD = ../libdynare++/libdynare++.a $(PTHREAD_LIBS)
 
 nodist_dynare_simul__SOURCES = dynare_simul.cpp
diff --git a/mex/build/k_order_perturbation.am b/mex/build/k_order_perturbation.am
index 54d7ded32000c69de5990222fbf9e4e0f8f7dfee..8560501b425f90893f3100dbba2510025c060e61 100644
--- a/mex/build/k_order_perturbation.am
+++ b/mex/build/k_order_perturbation.am
@@ -7,7 +7,8 @@ CPPFLAGS += -I$(top_srcdir)/../../../dynare++/src -I$(top_srcdir)/../../../dynar
 
 CXXFLAGS += $(PTHREAD_CFLAGS)
 
-k_order_perturbation_LDADD = $(PTHREAD_LIBS) $(LIBADD_DLOPEN) ../libdynare++/libdynare++.a
+# libdynare++ must come before pthread
+k_order_perturbation_LDADD = ../libdynare++/libdynare++.a $(PTHREAD_LIBS) $(LIBADD_DLOPEN)
 
 nodist_k_order_perturbation_SOURCES = \
 	k_order_perturbation.cpp \