diff --git a/product/ERP5/tests/testTrashTool.py b/product/ERP5/tests/testTrashTool.py
index a346f2070ddd9e37b497bb5ada0b6e62261ccfda..cfd5a9b05b98662501355036a75861102f241eb3 100644
--- a/product/ERP5/tests/testTrashTool.py
+++ b/product/ERP5/tests/testTrashTool.py
@@ -90,6 +90,16 @@ class TestTrashTool(ERP5TypeTestCase):
       category_list.append(category.getId())
     sequence.edit(category_id_list=category_list)
 
+  def stepAddFolder(self, sequence=None, sequence_list=None, **kw):
+    """
+    add OFS Folder to backup
+    """
+    ps = self.getPortalObject().portal_skins
+    erp5_core = ps['erp5_core']
+    erp5_core.manage_addFolder(id="image")
+    image = erp5_core._getOb("image")
+    f = image.manage_addFile(id="file")
+
   def stepCheckTrashToolExists(self, sequence=None, sequence_list=None, **kw):
     """
     Check existence of trash tool
@@ -198,6 +208,43 @@ class TestTrashTool(ERP5TypeTestCase):
       self.failUnless(cat.isIndexable, 0)
       self.assertEqual(cat.getPortalType(), 'Category')
 
+  def stepCheckFolderObjectBackup(self, sequence=None, sequence_list=None, **kw):
+    """
+    Check that skin folder has been well backup
+    """
+    trash_id = sequence.get('trash_id')
+    trash = self.getTrashTool()
+    trashbin = trash._getOb(trash_id, None)
+    self.failUnless(trashbin is not None)
+    bc_id = sequence.get('bc_id')
+    trashbin_objects_list = list(trashbin.objectValues())
+    self.failUnless(len(trashbin_objects_list) > 0)
+    self.assertEqual(len(trashbin_objects_list), 1)
+    obj = trashbin_objects_list[0]
+    self.assertEqual(obj.getId(), 'portal_skins_items')
+    self.assertEqual(obj.getPortalType(), 'Trash Folder')
+    self.assertEqual(obj.isIndexable, 0)
+    # get backup OFS Folder
+    skin_objects_list = list(obj.objectValues())
+    self.assertEqual(len(skin_objects_list), 1)
+    skin = skin_objects_list[0]
+    self.assertEqual(skin.id, 'erp5_core')
+    from OFS.Folder import Folder
+    self.failUnless(isinstance(skin, Folder))
+    # get image folder
+    skin_objects_list = list(skin.objectValues())
+    self.assertEqual(len(skin_objects_list), 1)
+    skin = skin_objects_list[0]
+    self.assertEqual(skin.id, 'image')
+    self.failUnless(skin.getPortalType(), "Trash Folder")
+    # get file
+    f_objects_list = list(skin.objectValues())
+    self.assertEqual(len(f_objects_list), 1)
+    f = f_objects_list[0]
+    self.assertEqual(f.getId(), 'file')
+    self.failUnless(f.getPortalType(), "Trash Folder")
+    
+
   def stepBackupObjectsWithSave(self, sequence=None, sequence_list=None, **kw):
     """
     Backup objects and check subobjects are return
@@ -216,6 +263,18 @@ class TestTrashTool(ERP5TypeTestCase):
     backup_subobjects_ids = trash.backupObject(trashbin, bc_path, bc_id, save=1)
     self.failUnless(backup_subobjects_ids.keys().sort() == list(subobjects_ids).sort())
 
+  def stepBackupFolderObjectsWithSave(self, sequence=None, sequence_list=None, **kw):
+    """
+    Backup objects and check subobjects are return
+    """
+    trash_id = sequence.get('trash_id')
+    trash = self.getTrashTool()
+    trashbin = trash._getOb(trash_id, None)
+    # backup the skin folder
+    trash.backupObject(trashbin, ["portal_skins",], "erp5_core", save=1)
+    # backup file
+    trash.backupObject(trashbin, ["portal_skins", "erp5_core", "image"], "file", save=1)
+
   def stepBackupObjectsWithoutSave(self, sequence=None, sequence_list=None, **kw):
     """
     Backup objects and check subobjects are return
@@ -388,6 +447,28 @@ class TestTrashTool(ERP5TypeTestCase):
     sequence_list.play(self, quiet=quiet)
 
 
+  def test_06_checkBackupofOFSFolderWithSave(self, quiet=quiet, run=run_all_test):
+    if not run: return
+    if not quiet:
+      message = 'Test Check Backup Of OFS Folder With Save'
+      ZopeTestCase._print('\n%s ' % message)
+      LOG('Testing... ', 0, message)
+    sequence_list = SequenceList()
+    sequence_string = '\
+                       CheckTrashToolExists  \
+                       CreateTrashBin \
+                       CheckTrashBinIndexable \
+                       AddFolder \
+                       Tic \
+                       BackupFolderObjectsWithSave \
+                       Tic \
+                       CheckFolderObjectBackup \
+                       '
+    sequence_list.addSequenceString(sequence_string)
+    sequence_list.play(self, quiet=quiet)
+
+
+
 def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestTrashTool))