diff --git a/pbx/ael/ael.flex b/pbx/ael/ael.flex
index fb86903a3b9b3e3db340bcb45f0dbf080d4e552c..62e5d972088f4d4891a69b6ad0400b8856920401 100644
--- a/pbx/ael/ael.flex
+++ b/pbx/ael/ael.flex
@@ -36,7 +36,7 @@ static int parencount = 0;
 static int commaout = 0;
 static int my_lineno = 1;
 static int my_col = 0;
-static char *my_file = 0;
+char *my_file = 0;	/* used also in the bison code */
 char *prev_word;
 #define MAX_INCLUDE_DEPTH 50
 
@@ -544,8 +544,9 @@ static int pbcpop(char x)
 	return 1; /* error */
 }
 
-#if 0
-static int c_prevword(void)
+/* used by the bison code */
+int c_prevword(void);
+int c_prevword(void)
 {
 	char *c = prev_word;
 	int ret = 0;
@@ -564,7 +565,6 @@ static int c_prevword(void)
 	}
 	return 0;
 }
-#endif
 
 /* compute the total number of lines and columns in the text
  * passed as argument.
@@ -586,8 +586,9 @@ static void pbcwhere(const char *text, int *line, int *col )
 	*col = loc_col;
 }
 
-#if 0
-static void reset_parencount(yyscan_t yyscanner )
+/* used by the bison code */
+void reset_parencount(yyscan_t yyscanner );
+void reset_parencount(yyscan_t yyscanner )
 {
 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 	parencount = 0;
@@ -597,14 +598,18 @@ static void reset_parencount(yyscan_t yyscanner )
 	BEGIN(paren);
 }
 
-static void reset_semicount(yyscan_t yyscanner )
+/* used by the bison code */
+void reset_semicount(yyscan_t yyscanner );
+void reset_semicount(yyscan_t yyscanner )
 {
 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 	pbcpos = 0;
 	BEGIN(semic);
 }
 
-static void reset_argcount(yyscan_t yyscanner )
+/* used by the bison code */
+void reset_argcount(yyscan_t yyscanner );
+void reset_argcount(yyscan_t yyscanner )
 {
 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 	parencount = 0;
@@ -615,8 +620,6 @@ static void reset_argcount(yyscan_t yyscanner )
 	BEGIN(argg);
 }
 
-#endif
-
 /* used elsewhere, but some local vars */
 struct pval *ael2_parse(char *filename, int *errors)
 {
diff --git a/pbx/ael/ael_lex.c b/pbx/ael/ael_lex.c
index d4103ec22f9e82db7fe8b18f2eb87e917d951603..005d2ebbdf8688bfce209d96bf30b15e3d75ea4d 100644
--- a/pbx/ael/ael_lex.c
+++ b/pbx/ael/ael_lex.c
@@ -671,7 +671,7 @@ static int parencount = 0;
 static int commaout = 0;
 static int my_lineno = 1;
 static int my_col = 0;
-static char *my_file = 0;
+char *my_file = 0;	/* used also in the bison code */
 char *prev_word;
 #define MAX_INCLUDE_DEPTH 50
 
@@ -2895,8 +2895,9 @@ static int pbcpop(char x)
 	return 1; /* error */
 }
 
-#if 0
-static int c_prevword(void)
+/* used by the bison code */
+int c_prevword(void);
+int c_prevword(void)
 {
 	char *c = prev_word;
 	int ret = 0;
@@ -2915,7 +2916,6 @@ static int c_prevword(void)
 	}
 	return 0;
 }
-#endif
 
 /* compute the total number of lines and columns in the text
  * passed as argument.
@@ -2937,8 +2937,9 @@ static void pbcwhere(const char *text, int *line, int *col )
 	*col = loc_col;
 }
 
-#if 0
-static void reset_parencount(yyscan_t yyscanner )
+/* used by the bison code */
+void reset_parencount(yyscan_t yyscanner );
+void reset_parencount(yyscan_t yyscanner )
 {
 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 	parencount = 0;
@@ -2948,14 +2949,18 @@ static void reset_parencount(yyscan_t yyscanner )
 	BEGIN(paren);
 }
 
-static void reset_semicount(yyscan_t yyscanner )
+/* used by the bison code */
+void reset_semicount(yyscan_t yyscanner );
+void reset_semicount(yyscan_t yyscanner )
 {
 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 	pbcpos = 0;
 	BEGIN(semic);
 }
 
-static void reset_argcount(yyscan_t yyscanner )
+/* used by the bison code */
+void reset_argcount(yyscan_t yyscanner );
+void reset_argcount(yyscan_t yyscanner )
 {
 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 	parencount = 0;
@@ -2966,8 +2971,6 @@ static void reset_argcount(yyscan_t yyscanner )
 	BEGIN(argg);
 }
 
-#endif
-
 /* used elsewhere, but some local vars */
 struct pval *ael2_parse(char *filename, int *errors)
 {
diff --git a/utils/Makefile b/utils/Makefile
index d88beee83226e2a83f0f7deba9fb36f17cb3dadc..9b838fc0e0f746686354978f8c1f3b5833814a0d 100644
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -14,7 +14,7 @@
 #
 # Don't use ast mm routines
 #
-UTILS:=astman smsq stereorize streamplayer
+UTILS:=astman smsq stereorize streamplayer aelparse
 
 ifeq (${OSARCH},SunOS)
   SOL=../strcompat.o
@@ -70,7 +70,7 @@ aelparse : ../pbx/ael/aelflex.o ../pbx/ael/aelbison.o ../pbx/pbx_ael.o ael_main.
 	$(CC) $(CFLAGS) -g -o aelparse ../pbx/ael/aelflex.o ../pbx/ael/aelbison.o ael_main.o ../pbx/pbx_ael.o ../ast_expr2f.o ../ast_expr2.o
 
 ael_main.o : ael_main.c ../include/asterisk/ael_structs.h
-	$(CC) $(CFLAGS) -c -g -o ael_main.o ael_main.c
+	$(CC) $(CFLAGS) -include ../include/autoconfig.h -c -g -o ael_main.o ael_main.c
 
 ael_main1.o : ael_main.c ../include/asterisk/ael_structs.h
 	$(CC) $(CFLAGS) -c -g  -o ael_main1.o ael_main.c
diff --git a/utils/ael_main.c b/utils/ael_main.c
index ee6e815bdc5d321ea76f5424c3b6f8039987cf66..018077b65caf745947f227533ae6ba804618206a 100644
--- a/utils/ael_main.c
+++ b/utils/ael_main.c
@@ -6,17 +6,15 @@
 #include <ctype.h>
 #if !defined(SOLARIS) && !defined(__CYGWIN__)
 #include <err.h>
-#else
-#define quad_t int64_t
 #endif
 #include <errno.h>
 #include <regex.h>
 #include <limits.h>
-#include <asterisk/ast_expr.h>
-#include <asterisk/logger.h>
-#include <asterisk/module.h>
-#include <asterisk/channel.h>
-#include <asterisk/app.h>
+#include "asterisk/ast_expr.h"
+#include "asterisk/logger.h"
+#include "asterisk/module.h"
+#include "asterisk/channel.h"
+#include "asterisk/app.h"
 #include "asterisk/ael_structs.h"
 #define AST_CONFIG_MAX_PATH 255