I'm new to this, but I've got quite far and now I'm stuck - help! This is with Zope-1.11.0pr1 under Linux. As an exercise, I'm trying to write a Slashdot-esque threaded comment system using PostgreSQL and ZPyGreSQL, and I wonder if my assumptions about scoping are biting me. Comments have an Object Identifier, "oid". I have an SQL method "allcomments" that looks up all comments, and defines "oid" among other variables (eg "subject"). "responses" looks up all the comments that are responses to "oid". allcomments looks like this: select *, oid from comments and repliesto like this: select *,oid from comments <!--#sqlgroup required where--> <!--#sqltest oid column=reference type=int optional--> <!--#/sqlgroup--> This code works fine: <!--#if repliesto--> <ul> <!--#in repliesto--> <li><!--#var subject--> <!--#/in--> </ul> <!--#/if--> So why is it that this code works fine: <ul> <li>Before <!--#in allcomments--> <li><!--#var subject--> <ul> <li>Before: <!--#var subject--> <!--#var oid--> <!--#in allcomments--> <li><!--#var subject--> <!--#/in--> <li>After: <!--#var subject--> </ul> <!--#/in--> <li>After </ul> and does what you expect (in particular, the subject doesn't change across the inner allcomments), but if I replace the inner "allcomments" with "repliesto", I get this: Zope Error Zope has encountered an error while publishing this resource. Error Type: Bad Request Error Value: ['oid'] This is frustrating my attempts to use recursion to build threading trees, it's late and I've written too many test scripts. Help much appreciated! -- __ \/ o\ paul@hedonism.demon.co.uk http://www.hedonism.demon.co.uk/paul/ \ / /\__/ Paul Crowley Upgrade your legacy NT machines to Linux /~\