You may not be entering UpdateHours. Try <dtml-var "0/0"> just before the call to UpdateHours. Or some other obvious way to know if your entering it. Here's how I coded the same kind of thing. Although I'm reading the Zope book right now to see how I should have done it. The book is good and I might just learn a better solution than 0/0 :) --- Part of addContact <form action="insertNewContactForm" method="get"> <table> <tr><td>Name:</td><td><input type="text" name="name" ></td></tr> <tr><td>Title:</td><td><input type="text" name="title"></td></tr> <tr><td>Phone:</td><td><input type="text" name="phone"></td></tr> </table> <table><tr> <td><input type="submit" name="cmd" value="Insert"></td> <td><input type="submit" name="cmd" value="Update"></td> <td><input type="submit" name="cmd" value="Delete"></td> <td><input type="submit" name="cmd" value="Clear"></td> </tr></table> </form> ---insertNewContactForm <dtml-if expr="_.len(name) > 0"> <dtml-if expr="cmd=='Insert'"> <dtml-var insertNewContact> <dtml-elif expr="cmd=='Delete'"> <dtml-call deleteWhere> <dtml-elif expr="cmd=='Update'"> <dtml-call updateWhere> <dtml-elif expr="cmd=='Clear'"> </dtml-if> </dtml-if> <dtml-var "RESPONSE.redirect('addContact')"> --Darrell