Wow -- this list has been so immensely helpful, it at once demonstrates how wonderful the open source community is.... and what an idiot *I* am. I have a dtml script which receives a form variable "field_topic", which is a list of the topic property or properties of the document or documents within a folder, and performs actions based upon the values in this list. The code is thus: <dtml-with REQUEST> <dtml-in field_topic> <dtml-let topik=sequence-item> <table border="1"> <dtml-in expr="PARENTS[0].objectValues(['STX_Document'])" sort="topic,title"> <dtml-if "topic == topik"> ........ If there are two or more elements in "fileld_topic", all is well. However, if "field_topic" contains only one element, I get the following error message: Zope Error Zope has encountered an error while publishing this resource. *Error Type: InError* *Error Value: Strings are not allowed as input to the in tag* ??? So my list is interpreted as a string if it is only one element in length. What is the simplest way to deal with the possibility of a one element (or *zero* element) list being returned?? I tried <dtml-if expr="len(field_topic) < 2"> DO <dtml-elif expr="len(field_topic) >= 2"> DO OTHER </dtml-if>. It didn't work. The <dtml-in> loop still gets called, even though the if loop should never reach it. Unless I've designed the loop incorrectly. I call upon those of you who actually understand the inner intracacies of Zope for your help. And I thank you in advance. peace* *