diff --git a/product/HBTreeFolder2/tests/testHBTreeFolder2.py b/product/HBTreeFolder2/tests/testHBTreeFolder2.py
index cc0f8e188f13e7a39880ba65a68ee7e5dac5a998..8d80c1861de27d34c9d856a76bb3280d66de776f 100644
--- a/product/HBTreeFolder2/tests/testHBTreeFolder2.py
+++ b/product/HBTreeFolder2/tests/testHBTreeFolder2.py
@@ -15,16 +15,20 @@
 import random
 import unittest
 import ZODB
-import Testing
+from Testing import ZopeTestCase
 import Zope2
 from Products.HBTreeFolder2.HBTreeFolder2 \
      import HBTreeFolder2, ExhaustedUniqueIdsError
 from OFS.ObjectManager import BadRequestException
 from OFS.Folder import Folder
 from Acquisition import aq_base
+import timeit
+from textwrap import dedent
+from Products.ERP5Type.tests.backportUnittest import expectedFailure
+from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
 
 
-class HBTreeFolder2Tests(unittest.TestCase):
+class HBTreeFolder2Tests(ERP5TypeTestCase):
 
     def getBase(self, ob):
         # This is overridden in subclasses.
@@ -226,6 +230,82 @@ class HBTreeFolder2Tests(unittest.TestCase):
           id_list.remove(i)
           h._delOb(i)
 
+    @expectedFailure
+    def testPerformanceInDepth(self):
+        """
+        Check HBTreeFolder2 GET performance with the depth and the number of
+        documents.
+        """
+        init_1 = dedent("""
+        from Products.HBTreeFolder2.HBTreeFolder2 import HBTreeFolder2
+        from Products.CMFDefault.File import File
+        h_depth_1 = HBTreeFolder2()
+        #from BTrees.OOBTree import OOBTree
+        #h_depth_1 = OOBTree()
+        for i in xrange(%d):
+            id = str(i)
+            h_depth_1[id] = File(id)
+        """)
+        init_2 = dedent("""
+        from Products.HBTreeFolder2.HBTreeFolder2 import HBTreeFolder2
+        from Products.CMFDefault.File import File
+        h_depth_2 = HBTreeFolder2()
+        #from BTrees.OOBTree import OOBTree
+        #h_depth_2 = OOBTree()
+        for i in xrange(%d / 100):
+            for j in xrange(100):
+                id = "-".join(map(str,(i,j)))
+                h_depth_2[id] = File(id)
+        """)
+        init_3 = dedent("""
+        from Products.HBTreeFolder2.HBTreeFolder2 import HBTreeFolder2
+        from Products.CMFDefault.File import File
+        h_depth_3 = HBTreeFolder2()
+        #from BTrees.OOBTree import OOBTree
+        #h_depth_3 = OOBTree()
+        for i in xrange(%d / (100 * 10)):
+            for j in xrange(100):
+                for k in xrange(10):
+                    id = "-".join(map(str, (i, j, k)))
+                    h_depth_3[id] = File(id)
+        """)
+
+        N = 1000
+        # measure 100 times of each test
+        t1 = timeit.Timer("h_depth_1['555']", init_1 % N).timeit(100)
+        t2 = timeit.Timer("h_depth_2['5-55']", init_2 % N).timeit(100)
+        t3 = timeit.Timer("h_depth_3['0-55-5']", init_3 % N).timeit(100)
+        ZopeTestCase._print("\nN = 1000\n")
+        ZopeTestCase._print("L1=%s\tL2=%s\tL3=%s" % (t1, t2, t3))
+
+        N = 10000 # 10 times bigger than previous test
+        # measure 100 times of each test
+        t2_1 = timeit.Timer("h_depth_1['5555']", init_1 % N).timeit(100)
+        t2_2 = timeit.Timer("h_depth_2['55-55']", init_2 % N).timeit(100)
+        t2_3 = timeit.Timer("h_depth_3['5-55-5']", init_3 % N).timeit(100)
+        ZopeTestCase._print("\nN = 10000\n")
+        ZopeTestCase._print("L1'=%s\tL2'=%s\tL3'=%s" % (t2_1, t2_2, t2_3))
+
+        N = 100000  # 10 times bigger than pevious test
+        t3_1 = timeit.Timer("h_depth_1['22222']", init_1 % N).timeit(100)
+        t3_2 = timeit.Timer("h_depth_2['222-22']", init_2 % N).timeit(100)
+        t3_3 = timeit.Timer("h_depth_3['22-22-2']", init_3 % N).timeit(100)
+        ZopeTestCase._print("\nN = 100000\n")
+        ZopeTestCase._print("L1''=%s\tL2''=%s\tL3''=%s" % (t3_1, t3_2, t3_3))
+
+        # These assert are should be True, but right now those are not passed
+
+        # assert that L2 is faster than L1, because the bottom node is smaller
+        self.assertTrue(t1 > t2)
+        self.assertTrue(t2_1 > t2_2)
+        self.assertTrue(t3_1 > t3_2)
+
+        # assert that L3 is faster than L2, because the bottom node is smaller
+        self.assertTrue(t2 > t3)
+        self.assertTrue(t2_2 > t2_3)
+        self.assertTrue(t3_2 > t3_3)
+
+
 class TrojanKey:
     """Pretends to be a consistent, immutable, humble citizen...