diff --git a/product/ZSQLCatalog/SQLCatalog.py b/product/ZSQLCatalog/SQLCatalog.py
index 0f6aa28ccbed69112f5a844021037dfaef0374b1..24701791920b9b99582a1f0c17aec56a072f07b2 100644
--- a/product/ZSQLCatalog/SQLCatalog.py
+++ b/product/ZSQLCatalog/SQLCatalog.py
@@ -1474,6 +1474,8 @@ class Catalog( Folder,
   def manage_catalogClear(self, REQUEST=None, RESPONSE=None,
                           URL1=None, sql_catalog_id=None):
     """ clears the whole enchilada """
+    self.beforeCatalogClear()
+
     self.clear()
 
     if RESPONSE and URL1:
diff --git a/product/ZSQLCatalog/ZSQLCatalog.py b/product/ZSQLCatalog/ZSQLCatalog.py
index 39d7a79bf9a234fa75477a37560993f7eb1f6a4f..db8538362d16f8ead32f7789fff2617d4c3e78d3 100644
--- a/product/ZSQLCatalog/ZSQLCatalog.py
+++ b/product/ZSQLCatalog/ZSQLCatalog.py
@@ -587,8 +587,6 @@ class ZCatalog(Folder, Persistent, Implicit):
     if REQUEST is not None and sql_catalog_id is None:
       sql_catalog_id = REQUEST.get('sql_catalog_id', None)
 
-    self.beforeCatalogClear()
-
     catalog = self.getSQLCatalog(sql_catalog_id)
     if catalog is not None:
       catalog.manage_catalogClear(REQUEST=REQUEST, RESPONSE=RESPONSE, URL1=URL1)