diff --git a/pbx/ael/ael.flex b/pbx/ael/ael.flex
index 9f5e2f67f1824255d655939535bd7e26bc7a359c..04da2b3249a375de8a1283d1ba31335007a7b603 100644
--- a/pbx/ael/ael.flex
+++ b/pbx/ael/ael.flex
@@ -378,9 +378,7 @@ includes	{ STORE_POS; return KW_INCLUDES;}
 <semic>{NOSEMIC};	{
 		STORE_LOC;
 		yylval->str = strdup(yytext);
-		/* XXX maybe the truncation should be unconditional ? */
-		if(yyleng > 1)
-			*(yylval->str+yyleng-1)=0;
+		yylval->str[yyleng-1] = '\0';
 		unput(';');
 		BEGIN(0);
 		return word;
diff --git a/pbx/ael/ael_lex.c b/pbx/ael/ael_lex.c
index 5e50cb05a9ba29e5a82a43d56edfae8e572feb95..132bf5435036c5d79a054dbd7e1f0bc8f10b7004 100644
--- a/pbx/ael/ael_lex.c
+++ b/pbx/ael/ael_lex.c
@@ -1522,9 +1522,7 @@ YY_RULE_SETUP
 {
 		STORE_LOC;
 		yylval->str = strdup(yytext);
-		/* XXX maybe the truncation should be unconditional ? */
-		if(yyleng > 1)
-			*(yylval->str+yyleng-1)=0;
+		yylval->str[yyleng-1] = '\0';
 		unput(';');
 		BEGIN(0);
 		return word;
@@ -1533,7 +1531,7 @@ YY_RULE_SETUP
 case 54:
 /* rule 54 can match eol */
 YY_RULE_SETUP
-#line 389 "ael.flex"
+#line 387 "ael.flex"
 {
 		FILE *in1;
 		char fnamebuf[1024],*p1,*p2;
@@ -1600,7 +1598,7 @@ case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(paren):
 case YY_STATE_EOF(semic):
 case YY_STATE_EOF(argg):
-#line 451 "ael.flex"
+#line 449 "ael.flex"
 {
 		if ( --include_stack_index < 0 ) {
 			yyterminate();
@@ -1616,10 +1614,10 @@ case YY_STATE_EOF(argg):
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 464 "ael.flex"
+#line 462 "ael.flex"
 ECHO;
 	YY_BREAK
-#line 1623 "ael_lex.c"
+#line 1621 "ael_lex.c"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -2749,7 +2747,7 @@ void ael_yyfree (void * ptr , yyscan_t yyscanner)
 
 #define YYTABLES_NAME "yytables"
 
-#line 464 "ael.flex"
+#line 462 "ael.flex"