diff --git a/product/ERP5/Tool/TrashTool.py b/product/ERP5/Tool/TrashTool.py
index 31a1234064d4bdc3f46558f214c0d7cb2338d57a..a15a408819aa1743f87574f757a949f94d92cf65 100644
--- a/product/ERP5/Tool/TrashTool.py
+++ b/product/ERP5/Tool/TrashTool.py
@@ -37,6 +37,7 @@ from Products.ERP5 import _dtmldir
 from zLOG import LOG, WARNING
 from DateTime import DateTime
 from Acquisition import aq_base
+from cStringIO import StringIO
 
 class TrashTool(BaseTool):
   """
@@ -145,9 +146,10 @@ class TrashTool(BaseTool):
         obj = self.unrestrictedTraverse(object_path)
       if obj is not None:
         for subobject_id in list(obj.objectIds()):
-          subobject = obj.unrestrictedTraverse(subobject_id)
-          subobject_copy = subobject._p_jar.exportFile(subobject._p_oid)
-          subobjects_dict[subobject_id] = subobject_copy
+          subobject = obj[subobject_id]
+          subobjects_dict[subobject_id] = subobject._p_jar.exportFile(
+            subobject._p_oid, StringIO())
+
           if save: # remove subobjecs from backup object
             obj._delObject(subobject_id)
             if subobject_id in obj.objectIds():