(Was fun to read all the nuances gathered together - nice job michel - practically the start of a topic guide. One nuance that i didn't notice is additional leniency that the non-quoted ("name=", non-expr) dtml style offers. Eg, the expression <!--#if green_eggs--> will evaluate to true if the var (or method) green_eggs exists and evaluates true. Otherwise it will evaluate to false. On the other hand, <!--#if "green_eggs"--> is similar *except* that an exception will be raised if the name green_eggs is not defined. The former, non-expr version conveniently tolerates unbound names. To tolerate unbound names in an expr you have to get a lot more verbose - doing something like: <!--#if "_.has_key('green_eggs') and green_eggs"--> While this may seem unnecessary with the non-expr convenience, but sometimes you need to distinguish definitively between undefined and false values...) Ken Manheimer klm@digicool.com