diff --git a/build_tools/cflags.xml b/build_tools/cflags.xml
index d0498a48fcb332d39b00d0c8f9d5fb1c78e35a5f..189820db107cc104e71abb4b35c6682f8e2cb833 100644
--- a/build_tools/cflags.xml
+++ b/build_tools/cflags.xml
@@ -10,6 +10,11 @@
 		</member>
 		<member name="DEBUG_FD_LEAKS" displayname="Enable File Descriptor Leak Detection">
 		</member>
+		<member name="REBUILD_PARSERS" displayname="Rebuild AEL and expression parsers from bison/flex source files">
+			<depend>bison</depend>
+			<depend>flex</depend>
+			<defaultenabled>no</defaultenabled>
+		</member>
 		<member name="LOW_MEMORY" displayname="Optimize for Low Memory Usage">
 		</member>
 		<member name="USE_HOARD_ALLOCATOR" displayname="Use the Hoard Memory Allocator instead of the default system one">
diff --git a/build_tools/menuselect-deps.in b/build_tools/menuselect-deps.in
index d0d8655fe47e159dce084fee7321f115d3be6a73..6a33830eeb933e6145192c446aee1504a8401d6a 100644
--- a/build_tools/menuselect-deps.in
+++ b/build_tools/menuselect-deps.in
@@ -1,8 +1,10 @@
 ALSA=@PBX_ALSA@
 BLUETOOTH=@PBX_BLUETOOTH@
 CRYPTO=@PBX_CRYPTO@
+BISON=@PBX_BISON@
 CURL=@PBX_CURL@
 DAHDI=@PBX_DAHDI@
+FLEX=@PBX_FLEX@
 FREETDS=@PBX_FREETDS@
 GENERIC_ODBC=@PBX_GENERIC_ODBC@
 GMIME=@PBX_GMIME@
diff --git a/configure b/configure
index 6d30e2be6bcd40d634a033677420875533a91118..ec9ac0c552fe0a813786f086b9c21c1009537b13 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.ac Revision: 242521 .
+# From configure.ac Revision: 242857 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.61 for asterisk 1.6.
 #
@@ -720,6 +720,8 @@ KPATHSEA
 XMLSTARLET
 FETCH
 DOWNLOAD
+PBX_BISON
+PBX_FLEX
 SOXMIX
 MD5
 acx_pthread_config
@@ -7701,8 +7703,18 @@ fi
 echo "${ECHO_T}$ac_cv_path_BISON2" >&6; }
 if test "x${ac_cv_path_BISON2}" = "x" ; then
 	BISON=:
+	PBX_BISON=0
+else
+	PBX_BISON=1
 fi
 
+if test "x${FLEX}" = "x:" ; then
+	PBX_FLEX=0
+else
+	PBX_FLEX=1
+fi
+
+
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}soxmix", so it can be a program name with args.
 set dummy ${ac_tool_prefix}soxmix; ac_word=$2
@@ -47503,6 +47515,8 @@ KPATHSEA!$KPATHSEA$ac_delim
 XMLSTARLET!$XMLSTARLET$ac_delim
 FETCH!$FETCH$ac_delim
 DOWNLOAD!$DOWNLOAD$ac_delim
+PBX_BISON!$PBX_BISON$ac_delim
+PBX_FLEX!$PBX_FLEX$ac_delim
 SOXMIX!$SOXMIX$ac_delim
 MD5!$MD5$ac_delim
 acx_pthread_config!$acx_pthread_config$ac_delim
@@ -47594,8 +47608,6 @@ PBX_IODBC!$PBX_IODBC$ac_delim
 ISDNNET_LIB!$ISDNNET_LIB$ac_delim
 ISDNNET_INCLUDE!$ISDNNET_INCLUDE$ac_delim
 ISDNNET_DIR!$ISDNNET_DIR$ac_delim
-PBX_ISDNNET!$PBX_ISDNNET$ac_delim
-JACK_LIB!$JACK_LIB$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -47637,6 +47649,8 @@ _ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+PBX_ISDNNET!$PBX_ISDNNET$ac_delim
+JACK_LIB!$JACK_LIB$ac_delim
 JACK_INCLUDE!$JACK_INCLUDE$ac_delim
 JACK_DIR!$JACK_DIR$ac_delim
 PBX_JACK!$PBX_JACK$ac_delim
@@ -47732,8 +47746,6 @@ PRI_VERSION_LIB!$PRI_VERSION_LIB$ac_delim
 PRI_VERSION_INCLUDE!$PRI_VERSION_INCLUDE$ac_delim
 PRI_VERSION_DIR!$PRI_VERSION_DIR$ac_delim
 PBX_PRI_VERSION!$PBX_PRI_VERSION$ac_delim
-PRI_INBANDDISCONNECT_LIB!$PRI_INBANDDISCONNECT_LIB$ac_delim
-PRI_INBANDDISCONNECT_INCLUDE!$PRI_INBANDDISCONNECT_INCLUDE$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -47775,6 +47787,8 @@ _ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+PRI_INBANDDISCONNECT_LIB!$PRI_INBANDDISCONNECT_LIB$ac_delim
+PRI_INBANDDISCONNECT_INCLUDE!$PRI_INBANDDISCONNECT_INCLUDE$ac_delim
 PRI_INBANDDISCONNECT_DIR!$PRI_INBANDDISCONNECT_DIR$ac_delim
 PBX_PRI_INBANDDISCONNECT!$PBX_PRI_INBANDDISCONNECT$ac_delim
 PRI_PROG_W_CAUSE_LIB!$PRI_PROG_W_CAUSE_LIB$ac_delim
@@ -47870,8 +47884,6 @@ TINFO_INCLUDE!$TINFO_INCLUDE$ac_delim
 TINFO_DIR!$TINFO_DIR$ac_delim
 PBX_TINFO!$PBX_TINFO$ac_delim
 TONEZONE_LIB!$TONEZONE_LIB$ac_delim
-TONEZONE_INCLUDE!$TONEZONE_INCLUDE$ac_delim
-TONEZONE_DIR!$TONEZONE_DIR$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -47913,6 +47925,8 @@ _ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+TONEZONE_INCLUDE!$TONEZONE_INCLUDE$ac_delim
+TONEZONE_DIR!$TONEZONE_DIR$ac_delim
 PBX_TONEZONE!$PBX_TONEZONE$ac_delim
 UNIXODBC_LIB!$UNIXODBC_LIB$ac_delim
 UNIXODBC_INCLUDE!$UNIXODBC_INCLUDE$ac_delim
@@ -48008,7 +48022,7 @@ PBX_SYSLOG!$PBX_SYSLOG$ac_delim
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 93; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 95; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
diff --git a/configure.ac b/configure.ac
index 2bd29f806c97e208750cccc5512708edaf79b519..ea0e3eb18ffde18302bb3b83ead640e35b0b2f1f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -241,7 +241,17 @@ __EOL__
 	])
 if test "x${ac_cv_path_BISON2}" = "x" ; then
 	BISON=:
+	PBX_BISON=0
+else
+	PBX_BISON=1
+fi
+AC_SUBST(PBX_BISON)
+if test "x${FLEX}" = "x:" ; then
+	PBX_FLEX=0
+else
+	PBX_FLEX=1
 fi
+AC_SUBST(PBX_FLEX)
 
 AC_CHECK_TOOL([SOXMIX], [soxmix], [:])
 if test "${SOXMIX}" != ":" ; then