diff --git a/product/ERP5Type/Tool/CacheTool.py b/product/ERP5Type/Tool/CacheTool.py
index e0d1fe859ee085ccd9cbe9c12bfa5e22f9aad6ec..f7441b8007b8849622e51f6586fc8f7fbab63db8 100644
--- a/product/ERP5Type/Tool/CacheTool.py
+++ b/product/ERP5Type/Tool/CacheTool.py
@@ -173,10 +173,20 @@ class CacheTool(BaseTool):
         CachingMethod.factories[key] = CacheFactory(item['cache_plugins'], item['cache_params'])    
     if REQUEST is not None:
       self.REQUEST.RESPONSE.redirect('cache_tool_configure?manage_tabs_message=Cache updated.')
-    
+
+  security.declareProtected(Permissions.ModifyPortalContent, 'clearAllCache')
+  def clearAllCache(self, REQUEST=None):
+    """ Clear all cache factories. """
+    ram_cache_root = self.getRamCacheRoot()
+    for cf_key in ram_cache_root.keys():
+      for cp in ram_cache_root[cf_key].getCachePluginList():
+        cp.clearCache()
+    if REQUEST is not None:
+      self.REQUEST.RESPONSE.redirect('cache_tool_configure?manage_tabs_message=All cache factories cleared.')
+      
   security.declareProtected(Permissions.ModifyPortalContent, 'clearCache')
   def clearCache(self, cache_factory_list=(DEFAULT_CACHE_FACTORY,), REQUEST=None):
-    """ Clear cache factory. """
+    """ Clear specified or default cache factory. """
     ram_cache_root = self.getRamCacheRoot()
     for cf_key in cache_factory_list:
       if ram_cache_root.has_key(cf_key):