4de76ca
--- a/check.t	2010/07/19 22:41:01	1.383
4de76ca
+++ b/check.t	2010/07/21 11:31:13	1.384
4de76ca
@@ -184,6 +184,17 @@ stdin:
4de76ca
 expected-stdout:
4de76ca
 	tf
4de76ca
 	tf
4de76ca
+---
4de76ca
+name: alias-10
4de76ca
+description:
4de76ca
+	Check that recursion is detected/avoided in aliases.
4de76ca
+	Regression, introduced during an old bugfix.
4de76ca
+stdin:
4de76ca
+	alias foo='print hello '
4de76ca
+	alias bar='foo world'
4de76ca
+	echo $(bar)
4de76ca
+expected-stdout:
4de76ca
+	hello world
4de76ca
 ---
4de76ca
 name: arith-lazy-1
4de76ca
 description:
4de76ca
--- a/lex.c	2010/07/17 22:09:36	1.116
4de76ca
+++ b/lex.c	2010/07/21 11:31:15	1.117
4de76ca
@@ -1110,7 +1110,7 @@ yylex(int cf)
4de76ca
 			else {
4de76ca
 				Source *s = source;
4de76ca
 
4de76ca
-				while (s->flags & SF_HASALIAS)
4de76ca
+				while (s && (s->flags & SF_HASALIAS))
4de76ca
 					if (s->u.tblp == p)
4de76ca
 						return (LWORD);
4de76ca
 					else