diff --git a/product/ERP5/tests/testERP5Category.py b/product/ERP5/tests/testERP5Category.py
index da9b1022d460389b9b056ec6ea5407b30161a2bb..7bab23fd4f2bc67b2c46e9be4969cf7c350ebfc3 100755
--- a/product/ERP5/tests/testERP5Category.py
+++ b/product/ERP5/tests/testERP5Category.py
@@ -59,6 +59,7 @@ class TestERP5Category(ERP5TypeTestCase):
   run_all_test = 1
   portal_type = 'Organisation'
   base_cat = 'abc'
+  base_cat2 = 'efg'
   cat_list = [base_cat + '/1',base_cat + '/2']
   new_cat_list = [base_cat + '/3',base_cat + '/2']
   deep_cat_list = [base_cat + '/1/1',base_cat + '/2/1']
@@ -110,7 +111,7 @@ class TestERP5Category(ERP5TypeTestCase):
     portal_categories[self.base_cat].recursiveImmediateReindexObject()
 
     portal_type = self.getTypeTool()[self.portal_type]
-    portal_type.base_category_list = [self.base_cat]
+    portal_type.base_category_list = [self.base_cat, self.base_cat2]
     # Reset aq dynamic
     from Products.ERP5Type.Base import _aq_reset
     _aq_reset()
@@ -124,6 +125,14 @@ class TestERP5Category(ERP5TypeTestCase):
     self.person = person_module.newContent(portal_type = 'Person')
     self.person.immediateReindexObject()
 
+    bc2 = self.base_cat2
+    portal_categories.newContent(portal_type='Base Category',id=bc2)
+    self.efg_l1=portal_categories[bc2].newContent(id='1',portal_type='Category')
+    self.efg_l2=self.efg_l1.newContent(id='11',portal_type='Category')
+    self.efg_l3=self.efg_l2.newContent(id='111',portal_type='Category')
+    self.efg_l4=self.efg_l3.newContent(id='1111',portal_type='Category')
+    portal_categories[self.base_cat2].recursiveImmediateReindexObject()
+
     # We have no place to put a Predicate, we will put it in the
     # Organisation Module
     portal = self.getPortal()
@@ -213,9 +222,37 @@ class TestERP5Category(ERP5TypeTestCase):
     organisation = self.organisation
     person = self.person
     person.setSubordinationValue(organisation)
+    self.assertEquals(person.getSubordinationValue(),organisation)
     organisation_module.edit(id='new_id')
     self.assertEquals(person.getSubordinationValue(),organisation)
 
+  def test_07(self, quiet=0, run=run_all_test):
+    if not run: return
+    if not quiet:
+      self.logMessage('Rename a Base Category with a Person Related to a Sub-Sub-Sub-Category')
+    o = self.organisation
+    o.setEfgValueList([self.efg_l4])
+    self.failIfDifferentSet(o.getEfgList(),[self.base_cat2+'/1/11/111/1111'])
+    self.efg_l1.edit(id='new_id')
+    self.failIfDifferentSet(o.getEfgList(),[self.base_cat2+'/new_id/11/111/1111'])
+
+  def test_08(self, quiet=0, run=run_all_test):
+    if not run: return
+    if not quiet:
+      self.logMessage('Rename a Module with Contained Objects Refering to Other Objects inside the Same Module')
+    om = self.getOrganisationModule()
+    om['1'].setAbcValue(om['2'])
+    om['1'].immediateReindexObject()
+    self.assertEquals(len(om['2'].getRelatedValueList('abc')), 1)
+    self.assertEquals(len(om['2'].Base_zSearchRelatedObjectsByCategory(category_uid = om['2'].getUid())),1)    
+    self.assertEquals(om['1'].getAbc(),om['2'].getRelativeUrl())
+    original_uid = om['2'].getUid()
+    om.edit(id='new_id')
+    om = self.getPortal()['new_id']
+    self.assertEquals(original_uid, om['2'].getUid())
+    self.assertEquals(len(om['2'].getRelatedValueList('abc')), 1)
+    self.assertEquals(len(om['2'].Base_zSearchRelatedObjectsByCategory(category_uid = om['2'].getUid())),1)
+    self.assertEquals(om['1'].getAbc(),om['2'].getRelativeUrl())
 
 if __name__ == '__main__':
     framework()