Hi there, I've been trying to clean up the zope.formlib/zope.app.form situation. This is a report about my lack of progress so far, just so I have something to show for it. :) zope.app.form is in practice in use as a widget library for zope.formlib. It however also contains code that supports the original Zope 3 form system (using ZCML directives). My first response was to try to move zope.app.form's widgets into zope.formlib. zope.app.form can then depend on zope.formlib for its widgets (for backwards compatibility), and zope.formlib would stop depending on zope.app.form. We can leave the old Zope 3 form system behind. I started to try this but was daunted by having to port a huge amount of code from zope.app.form to zope.formlib, including test code. Instead, I tried to create a zope.formlibwidget which which would contain only the widgets of zope.app.form. zope.app.form would then depend on it for backwards compatibility, and zope.formlib would only need to depend on zope.formlibwidget. Unfortunately this bounced off the fact that zope.app.form's functional widget tests (there are many, we want to retain them) depend on the old Zope 3 form support in order to do their tests. The old Zope 3 form support I was trying to get rid of in the first place. To do sane functional tests I need a form library. I can't use zope.formlib in zope.formlibwidget as that would create a circular dependency (at least for tests, but that's ugly enough). So my conclusion is to move zope.app.form's widget stuff into zope.formlib, so that the functional tests can be ported to use zope.formlib instead of the old Zope 3 form system. So I'm back to my original approach again... Regards, Martijn