I was just looking at the ZCatalog code to figure out how to programatically add an index to a Catalog. I figured out how to do that fairly easily, but the code I was looking at has me a bit mystified. The method manage_addIndex is defined. The form that you use through the management interface to add an index has a submit button whose name is manage_addIndex:method. OK, that all looks like reasonable magic (magic because I don't know exactly what happens when a button gets marshalled as a method). Here's the part I don't understand: the form's action is set to the Catalog itself. manage_addIndex expects the index name and type as its first two parameters. Where does the magic come from that turns the form submission into a correct call to manage_addIndex? Probably I'm missing something obvious, but I will appreciate any aid in increasing my Zope Zen level here <grin>. --RDM