diff --git a/Makefile.am b/Makefile.am
index e0c3068064685609d210e2087101e96e1467288a..da3a8d7e3ca0ff7fe704f3f0c556b88e986f6220 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3,13 +3,20 @@
 # let make re-run automake upon need
 ACLOCAL_AMFLAGS = -I m4 $(ACLOCAL_MACOS_FLAGS)
 
+if EXTERNAL_MEDIASTREAMER
+MS2_DIR=
+else
+MS2_DIR=mediastreamer2
+endif
+
 if EXTERNAL_ORTP
-ORTP_DIR =
+ORTP_DIR=
 else
-ORTP_DIR = oRTP
+ORTP_DIR=oRTP
 endif
 
-SUBDIRS = m4 pixmaps po $(ORTP_DIR) mediastreamer2\
+
+SUBDIRS = m4 pixmaps po $(ORTP_DIR) $(MS2_DIR) \
 		coreapi console gtk share scripts
 
 
diff --git a/configure.in b/configure.ac
similarity index 89%
rename from configure.in
rename to configure.ac
index fc1c4c0a798ed46860f34003fa54f954ae3a1b7e..14d5a3566562d4e50a49ae0e54de982caba0c78c 100644
--- a/configure.in
+++ b/configure.ac
@@ -1,7 +1,8 @@
 dnl Process this file with autoconf to produce a configure script.
 
-AC_INIT([linphone],[3.3.99.3],[linphone-developers@nongnu.org])
+AC_INIT([linphone],[3.3.99.4],[linphone-developers@nongnu.org])
 AC_CANONICAL_SYSTEM
+AC_CONFIG_SRCDIR([coreapi/linphonecore.c])
 
 dnl Source packaging numbers
 
@@ -28,7 +29,8 @@ AC_SUBST(LINPHONE_VERSION)
 AC_MSG_NOTICE([$PACKAGE_NAME-$PACKAGE_VERSION		A full featured audio/video sip phone.])
 AC_MSG_NOTICE([licensed under the terms of the General Public License (GPL)])
 
-AM_INIT_AUTOMAKE([tar-ustar])
+AM_INIT_AUTOMAKE
+AC_SUBST([LIBTOOL_DEPS])
 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],)
 AC_CONFIG_HEADER(config.h)
 AC_CONFIG_MACRO_DIR([m4])
@@ -67,7 +69,8 @@ AC_SUBST(CONSOLE_FLAGS)
 AC_SUBST(GUI_FLAGS)
 
 dnl localization tools
-ifdef([IT_PROG_INTLTOOL],[IT_PROG_INTLTOOL],[AC_PROG_INTLTOOL])
+IT_PROG_INTLTOOL([0.40], [no-xml])
+
 dnl Initialize libtool
 AC_LIBTOOL_WIN32_DLL
 AC_PROG_LIBTOOL
@@ -374,15 +377,40 @@ fi
 
 AC_SUBST(STRICT_OPTIONS)
 
-AC_CONFIG_SUBDIRS( mediastreamer2 )
+top_srcdir=`dirname $0`
+
+AC_ARG_ENABLE([external-mediastreamer],
+      [AS_HELP_STRING([--enable-external-mediastreamer],[Use external mediastreamer library])],,
+      [enable_external_mediastreamer=no])
+
+AS_CASE($enable_external_mediastreamer,
+		[yes],[
+			PKG_CHECK_MODULES([MEDIASTREAMER], [mediastreamer])
+			MS2_VERSION=`$PKG_CONFIG --modversion mediastreamer`
+			AM_CONDITIONAL(EXTERNAL_MEDIASTREAMER, [true])],
+		[no],[
+			AC_CONFIG_SUBDIRS( mediastreamer2 )
+			MEDIASTREAMER_DIR=${top_srcdir}/mediastreamer2
+			MEDIASTREAMER_CFLAGS="-I\$(top_srcdir)/mediastreamer2/include"
+			MEDIASTREAMER_LIBS="\$(top_builddir)/mediastreamer2/src/libmediastreamer.la"
+dnl need to temporary change quotes to allow square brackets
+		 	changequote(<<, >>)
+			MS2_VERSION=`grep -e '^.C_INIT(' $MEDIASTREAMER_DIR/configure.ac | sed -e 's:\([^(]\+\)(\[mediastreamer\],\[\(.*\)\]):\2:g'`
+			changequote([, ])
+			AM_CONDITIONAL(EXTERNAL_MEDIASTREAMER, [false])],
+        [AC_MSG_ERROR([bad value '${enable_external_mediastreamer}' for --enable-external-mediastreamer])])
+
+AC_SUBST(MEDIASTREAMER_CFLAGS)
+AC_SUBST(MEDIASTREAMER_LIBS)
+AC_SUBST([MS2_VERSION])
 
 dnl check for db2html (docbook) to generate html user manual
 AC_CHECK_PROG(have_sgmltools,sgmltools, yes, no)
 AM_CONDITIONAL(ENABLE_MANUAL, test x$have_sgmltools$build_manual = xyesyes )
 
 dnl for external use of linphone libs
-LINPHONE_CFLAGS="-I${includedir} -I${includedir}/linphone  "
-LINPHONE_LIBS="-L${libdir}  -llinphone"
+LINPHONE_CFLAGS="-I${includedir} -I${includedir}/linphone"
+LINPHONE_LIBS="-L${libdir} -llinphone"
 
 if test x$mingw_found = xyes ; then
 	LINPHONE_LIBS="$LINPHONE_LIBS $OSIP_LIBS"
@@ -390,7 +418,6 @@ fi
 AC_SUBST(LINPHONE_CFLAGS)
 AC_SUBST(LINPHONE_LIBS)
 
-
 AC_DEFINE_UNQUOTED(LINPHONE_VERSION,"$PACKAGE_VERSION",[Linphone's version number])
 
 AC_DEFINE_UNQUOTED(LINPHONE_PLUGINS_DIR, "${package_prefix}/lib/liblinphone/plugins" ,[path of liblinphone plugins, not mediastreamer2 plugins])
@@ -406,7 +433,8 @@ AC_ARG_ENABLE(external-ortp,
       esac],[external_ortp=false])
 
 if test "$external_ortp" = 'true'; then
-	LP_CHECK_ORTP
+	PKG_CHECK_MODULES([ORTP], [ortp])
+	ORTP_VERSION=`$PKG_CONFIG --modversion ortp`
 else
 	AC_CONFIG_SUBDIRS( oRTP )
 	ORTP_CFLAGS="-I\$(top_srcdir)/oRTP/include"
@@ -414,22 +442,16 @@ else
 	if test x$ac_cv_c_bigendian = xyes ; then
 		ORTP_CFLAGS="$ORTP_CFLAGS -DORTP_BIGENDIAN"
 	fi
+	changequote(<<, >>)
+	ORTP_VERSION=`grep -E ^[AC]+_INIT ${top_srcdir}/oRTP/configure.ac | sed -e 's:^.*_INIT(.*,\[\(.*\)\]):\1:g'`
+	changequote([, ])
 fi
 AC_SUBST(ORTP_CFLAGS)
 AC_SUBST(ORTP_LIBS)
+AC_SUBST([ORTP_VERSION])
 
 AM_CONDITIONAL(EXTERNAL_ORTP, [test "$external_ortp" = 'true'])
 
-dnl Packaging: Pick oRTP version from ${top_srcdir}/oRTP/configure.ac
-dnl Feel free to propose an alternative & cleaner version...
-top_srcdir=`dirname $0`
-changequote(, )dnl
-ORTP_VERSION=`grep -E ^[AC]+_INIT ${top_srcdir}/oRTP/configure.ac | sed -e 's:^.*_INIT(.*,\[\(.*\)\]):\1:g'`
-MS2_VERSION=`grep -E ^[AC]+_INIT ${top_srcdir}/mediastreamer2/configure.ac | sed -e 's:^.*_INIT(.*,\[\(.*\)\]):\1:g'`
-changequote([, ])dnl
-AC_SUBST([ORTP_VERSION])
-AC_SUBST([MS2_VERSION])
-
 dnl ##################################################
 dnl # Check for doxygen
 dnl ##################################################
@@ -441,7 +463,7 @@ AM_CONDITIONAL(HAVE_DOXYGEN, test $DOXYGEN != false)
 AC_OUTPUT([ 
 Makefile 
 m4/Makefile
-po/Makefile.in 
+po/Makefile.in
 pixmaps/Makefile
 coreapi/Makefile
 coreapi/help/Makefile
diff --git a/console/Makefile.am b/console/Makefile.am
index 70c2625b4bf82768627dac716c2e1f134b6cb2d2..bef1e90d1e917a36a0aea63bc527f594f37b045e 100644
--- a/console/Makefile.am
+++ b/console/Makefile.am
@@ -9,9 +9,7 @@ INCLUDES = \
 	-I$(top_srcdir)/coreapi\
 	$(ORTP_CFLAGS) \
 	-I$(top_srcdir)/exosip \
-	-I$(top_srcdir)/mediastreamer2/include
-
-
+	$(MEDIASTREAMER_CFLAGS)
 
 bin_PROGRAMS =  linphonec linphonecsh
 
@@ -22,7 +20,7 @@ endif
 linphonec_SOURCES = linphonec.c linphonec.h commands.c
 linphonec_CFLAGS=$(COMMON_CFLAGS) $(CONSOLE_FLAGS)
 linphonec_LDADD = $(top_builddir)/coreapi/liblinphone.la $(READLINE_LIBS)  \
-		$(top_builddir)/mediastreamer2/src/libmediastreamer.la \
+		$(MEDIASTREAMER_LIBS) \
 		$(ORTP_LIBS) \
 		$(SPEEX_LIBS) \
 		$(OSIP_LIBS)
@@ -41,7 +39,7 @@ sipomatic_CFLAGS= $(COMMON_CFLAGS) $(CONSOLE_FLAGS)
 
 sipomatic_LDADD= 	$(INTLLIBS)  \
 			$(top_builddir)/coreapi/liblinphone.la \
-			$(top_builddir)/mediastreamer2/src/libmediastreamer.la \
+			$(MEDIASTREAMER_LIBS) \
 			$(ORTP_LIBS) \
 			$(SPEEX_LIBS) \
 			$(OSIP_LIBS)
diff --git a/coreapi/Makefile.am b/coreapi/Makefile.am
index b3cf6df1921b22c4b1e2e82298c7aa3b2cfc6a13..fa4b38576d2cc5c5715e11abd3b1376975d1f061 100644
--- a/coreapi/Makefile.am
+++ b/coreapi/Makefile.am
@@ -10,7 +10,7 @@ linphone_include_HEADERS=linphonecore.h linphonecore_utils.h ../config.h lpconfi
 
 INCLUDES = \
 	-I$(top_srcdir)\
-	-I$(top_srcdir)/mediastreamer2/include
+	$(MEDIASTREAMER_CFLAGS)
 
 
 lib_LTLIBRARIES=liblinphone.la
@@ -42,7 +42,7 @@ liblinphone_la_LDFLAGS= -version-info $(LIBLINPHONE_SO_VERSION) -no-undefined
 
 liblinphone_la_LIBADD= \
 		$(EXOSIP_LIBS) \
-		$(top_builddir)/mediastreamer2/src/libmediastreamer.la \
+		$(MEDIASTREAMER_LIBS) \
 		$(ORTP_LIBS)
 
 if BUILD_WIN32
@@ -58,6 +58,7 @@ test_lsd_LDADD=liblinphone.la
 AM_CFLAGS=$(STRICT_OPTIONS)  -DIN_LINPHONE \
 	$(ORTP_CFLAGS) \
 	$(OSIP_CFLAGS) \
+	$(MEDIASTREAMER_CFLAGS) \
 	$(EXOSIP_CFLAGS) \
 	-DENABLE_TRACE 	\
 	-DLOG_DOMAIN=\"LinphoneCore\" \
diff --git a/coreapi/help/Makefile.am b/coreapi/help/Makefile.am
index ebe407ff9722abdf19ef02c35108ab66d64caafc..d4cebffd71e97777e73177538821d940fd9128c7 100644
--- a/coreapi/help/Makefile.am
+++ b/coreapi/help/Makefile.am
@@ -39,11 +39,12 @@ helloworld_SOURCES=helloworld.c
 helloworld_LDADD=$(top_builddir)/coreapi/liblinphone.la
 
 INCLUDES=-I$(top_srcdir)/coreapi \
-		-I$(top_srcdir)/mediastreamer2/include
+		$(MEDIASTREAMER_CFLAGS)
 
 AM_CFLAGS=$(STRICT_OPTIONS)  -DIN_LINPHONE \
 	$(ORTP_CFLAGS) \
 	$(OSIP_CFLAGS) \
+	$(MEDIASTREAMER_CFLAGS) \
 	$(EXOSIP_CFLAGS) \
 	-DENABLE_TRACE 	\
 	-DLOG_DOMAIN=\"LinphoneCore\" \
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 546e9f4943a582bff046a442b50d1bda48a0d7ea..a2c38b342abe92aa482aa0c952f1943359676bcd 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -45,8 +45,8 @@ linphone_3_SOURCES=	\
 			loginframe.c \
 			linphone.h 
 
-linphone_3_LDADD=$(top_builddir)/oRTP/src/libortp.la \
-		$(top_builddir)/mediastreamer2/src/libmediastreamer.la \
+linphone_3_LDADD=$(ORTP_LIBS) \
+		$(MEDIASTREAMER_LIBS) \
 		$(top_builddir)/coreapi/liblinphone.la \
 			$(LIBGTK_LIBS) $(INTLLIBS) 
 
@@ -69,13 +69,13 @@ endif
 
 
 AM_CFLAGS= -DIN_LINPHONE -I$(top_srcdir)/coreapi/ \
-		-I$(top_srcdir)/mediastreamer2/include/ \
+		$(MEDIASTREAMER_CFLAGS) \
 		$(ORTP_CFLAGS) \
 		$(STRICT_OPTIONS) $(LIBGTK_CFLAGS) $(IPV6_CFLAGS) \
 		$(OSIP_CFLAGS) 
 
 
-version_date.h: $(top_srcdir)/configure.in
+version_date.h: $(top_srcdir)/configure.ac
 	echo "#define LINPHONE_VERSION_DATE \"$(VERSION)-`date +%y%m%d`\"" > $@
 
 newdate: