diff --git a/product/ERP5/Tool/TrashTool.py b/product/ERP5/Tool/TrashTool.py
index d8d70ce303b24d4919bb6dc1f7b2dbc928f95d3c..c17ba28c3698f6fcb3a263529fa9343225d75989 100644
--- a/product/ERP5/Tool/TrashTool.py
+++ b/product/ERP5/Tool/TrashTool.py
@@ -34,7 +34,7 @@ from Products.ERP5Type.Tool.BaseTool import BaseTool
 from Products.ERP5Type import Permissions
 from Products.ERP5 import _dtmldir
 from Products.ERP5.Document.BusinessTemplate import getChainByType
-from zLOG import LOG
+from zLOG import LOG, WARNING
 from DateTime import DateTime
 from Acquisition import aq_base
 
@@ -143,6 +143,11 @@ class TrashTool(BaseTool):
           subobjects_dict[subobject_id] = subobject_copy
           if save: # remove subobjecs from backup object
             obj._delObject(subobject_id)
+            if subobject_id in obj.objectIds():
+              LOG('Products.ERP5.Tool.TrashTool', WARNING,
+                  'Cleaning corrupted BTreeFolder2 object at %r.' % \
+                                                       (subobject_path,))
+              obj._cleanup()
     return subobjects_dict
 
   def newTrashBin(self, bt_title='trash', bt=None):