Index: quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/configure.zcml
===================================================================
--- quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/configure.zcml	(revision 1758)
+++ quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/configure.zcml	(revision 1759)
@@ -2,8 +2,28 @@
     xmlns="http://namespaces.zope.org/zope"
     xmlns:five="http://namespaces.zope.org/five"
+    xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
     i18n_domain="quintagroup.catalogupdater">
+
+    <include package=".exportimport" />
 
     <utility factory=".utility.CatalogUpdaterUtility"
              name="catalog_updater" />
 
+    <!-- Mark ZCatalog class with own interface for correct
+         working of GenericSetup import handler -->
+
+    <class class="Products.ZCatalog.ZCatalog.ZCatalog">
+      <implements interface=".interfaces.IUpdatableCatalog" />
+    </class>
+
+    <!-- register GenericSetup profile -->
+    <genericsetup:registerProfile
+      name="default"
+      title="quintagroup.catalogupdater"
+      directory="profiles/default"
+      description="Register Catalog Updater import step handler [quintagroup.catalogupdater]"
+      provides="Products.GenericSetup.interfaces.EXTENSION"
+      />
+    
+
 </configure> 
Index: quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/exportimport/catalogupdater.py
===================================================================
--- quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/exportimport/catalogupdater.py	(revision 1759)
+++ quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/exportimport/catalogupdater.py	(revision 1759)
@@ -0,0 +1,62 @@
+"""Catalog tool columns updater setup handlers.
+"""
+from zope.component import adapts
+from zope.component import queryUtility
+
+from Products.CMFCore.utils import getToolByName
+from Products.GenericSetup.utils import importObjects
+from Products.GenericSetup.utils import XMLAdapterBase
+from Products.GenericSetup.interfaces import ISetupEnviron
+
+from quintagroup.catalogupdater.interfaces import IUpdatableCatalog
+
+
+class CatalogUpdaterXMLAdapter(XMLAdapterBase):
+    """XML Catalog columns updater for CatalogTool.
+    """
+
+    adapts(IUpdatableCatalog, ISetupEnviron)
+
+    _LOGGER_ID = 'catalogupdater'
+
+    name = 'catalogupdater'
+
+    def _exportNode(self):
+        """Export the object as a DOM node.
+        """
+        return ''
+
+    def _importNode(self, node):
+        """Import the object from the DOM node.
+        """
+        self._updateColumns(node)
+        self._logger.info('Catalog columns updated.')
+
+
+    def _updateColumns(self, node):
+        columns = []
+        for child in node.childNodes:
+            if child.nodeName != 'column':
+                continue
+            col = str(child.getAttribute('value')).strip()
+            columns.append(col)
+
+        # Update columns in catalog
+        if len(columns) > 0:
+
+            catalog = self.context
+
+            self._logger.info('Updating %s columns for %s Catalog.' % (
+                columns, '/'.join(catalog.getPhysicalPaht())) )
+
+            cu = queryUtility(ICatalogUpdater, name='catalog_updater')
+            cu.updateMetadata4All(catalog, columns)
+
+
+def updateCatalogColumns(context):
+    """Update catalog columns with catalog_updater tool.
+    """
+    site = context.getSite()
+    tool = getToolByName(site, 'portal_catalog')
+
+    importObjects(tool, '', context)
Index: quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/exportimport/configure.zcml
===================================================================
--- quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/exportimport/configure.zcml	(revision 1759)
+++ quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/exportimport/configure.zcml	(revision 1759)
@@ -0,0 +1,6 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope">
+
+  <adapter factory=".catalogupdater.CatalogUpdaterXMLAdapter"/>
+
+</configure>
Index: quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/interfaces.py
===================================================================
--- quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/interfaces.py	(revision 1758)
+++ quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/interfaces.py	(revision 1759)
@@ -1,3 +1,8 @@
 from zope.interface import Interface
+
+class IUpdatableCatalog(Interface):
+    """ Marker interface for separate GenericSetup
+        exportimport handler
+    """
 
 class ICatalogUpdater(Interface):
Index: quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/profiles/default/import_steps.xml
===================================================================
--- quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/profiles/default/import_steps.xml	(revision 1759)
+++ quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/profiles/default/import_steps.xml	(revision 1759)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<import-steps>
+ <import-step id="catalogupdater" version="20100216-01"
+              handler="quintagroup.catalogupdater.exportimport.catalogupdater.updateCatalogColumns"
+              title="Catalog Columns Updater">
+  <dependency step="catalog"/>
+    Update catalog columns with quintagroup.catalogupdater tool.
+ </import-step>
+</import-steps>
Index: quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/profiles/default/metadata.xml
===================================================================
--- quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/profiles/default/metadata.xml	(revision 1759)
+++ quintagroup.catalogupdater/trunk/quintagroup/catalogupdater/profiles/default/metadata.xml	(revision 1759)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<metadata>
+  <version>0.1</version>
+</metadata>
