With the following trace from a dry run:
* Dry run selected.
* Starting the migration from version: 3.3rc3
* Attempting to upgrade from: 3.3rc3
* Upgrade aborted
* Error type: exceptions.AttributeError
* Error value: getCookedExpression
* File "/home/zope/plone3/eggs/Plone-3.3rc4-py2.4.egg/Products/CMFPlone/MigrationTool.py", line 210, in upgrade newv, msgs = self._upgrade(newv)
* File "/home/zope/plone3/eggs/Plone-3.3rc4-py2.4.egg/Products/CMFPlone/MigrationTool.py", line 321, in _upgrade res = function(self.aq_parent)
* File "/home/zope/plone3/eggs/Plone-3.3rc4-py2.4.egg/Products/CMFPlone/migrations/v3_3/__init__.py", line 12, in three3_rc3_three3_rc4 cookCSSRegistries(portal)
* File "/home/zope/plone3/eggs/Plone-3.3rc4-py2.4.egg/Products/CMFPlone/migrations/v3_3/__init__.py", line 25, in cookCSSRegistries resource.getCookedExpression()
* End of upgrade path, migration has finished
* The upgrade path did NOT reach current version
* Migration has failed
* Dry run selected, transaction aborted