diff --git a/product/ERP5/tests/testERP5HR.py b/product/ERP5/tests/testERP5HR.py
index 2ba8919ece26bb7f4b281d37e642574800c3324b..0f01446bec26b0b0e05f9a3f9a1cb8eb9ae879e9 100644
--- a/product/ERP5/tests/testERP5HR.py
+++ b/product/ERP5/tests/testERP5HR.py
@@ -869,10 +869,19 @@ class TestHR(ERP5TypeTestCase):
     # asURL method works on email
     pers = self.getPersonModule().newContent(portal_type='Person')
     pers.setDefaultEmailText('nobody@example.com')
-    email = per.getDefaultEmailValue()
+    email = pers.getDefaultEmailValue()
     self.assertEquals('mailto:nobody@example.com', email.asURL())
     
 
+  def test_getTranslatedId(self):
+    pers = self.getPersonModule().newContent(
+                portal_type='Person', id='default_email')
+    self.assertEquals(None, pers.getTranslatedId())
+    pers.setDefaultEmailText('nobody@example.com')
+    email = pers.getDefaultEmailValue()
+    self.assertEquals('Default Email', str(email.getTranslatedId()))
+    
+
 def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestHR))
diff --git a/product/ERP5Type/Base.py b/product/ERP5Type/Base.py
index 3f9c85f8b2cabe4990eca786ee95c3a81e5e4e61..5de2ea2c520dcb0dea50f1a38b5736a1dc5c8b3d 100644
--- a/product/ERP5Type/Base.py
+++ b/product/ERP5Type/Base.py
@@ -66,6 +66,7 @@ from Errors import DeferredCatalogError
 from Products.CMFActivity.ActiveObject import ActiveObject
 from Products.ERP5Type.Accessor.Accessor import Accessor as Method
 from Products.ERP5Type.Accessor.TypeDefinition import asDate
+from Products.ERP5Type.Message import Message
 
 from string import join
 import sys, re
@@ -2126,6 +2127,43 @@ class Base( CopyContainer,
         return title
     return self.getId()
 
+  security.declarePublic('getIdTranslationDict')
+  def getIdTranslationDict(self):
+    """Returns the mapping which is used to translate IDs.
+    """
+    return {
+        'Address': dict(default_address='Default Address'),
+        'Telephone': dict(default_telephone='Default Telephone',
+                          mobile_telephone='Mobile Telephone',),
+        'Fax': dict(default_fax='Default Fax'),
+        'Email': dict(default_email='Default Email',
+                      alternate_email='Alternate Email'),
+        'Career': dict(default_career='Default Career'),
+        'Payment Condition': dict(default_payment_condition=
+                                    'Default Payment Condition'),
+        'Image': dict(default_image='Default Image'),
+        'Purchase Supply Line': dict(purchase_supply_line=
+                                    'Default Purchase Supply Line'),
+        'Sale Supply Line': dict(sale_supply_line=
+                                 'Default Sale Supply Line'),
+    }
+
+
+  security.declareProtected(Permissions.AccessContentsInformation,
+                            'getTranslatedId')
+  def getTranslatedId(self):
+    """Returns the translated ID, if the ID of the current document has a
+    special meaning, otherwise returns None.
+    """
+    global_translation_dict = self.getIdTranslationDict()
+    ptype_translation_dict = global_translation_dict.get(
+                                  self.portal_type, None)
+    if ptype_translation_dict is not None:
+      id_ = self.getId()
+      if id_ in ptype_translation_dict:
+        return Message('erp5_ui', ptype_translation_dict[id_])
+
+
   security.declareProtected(Permissions.AccessContentsInformation,
                             'getCompactTitle')
   def getCompactTitle(self):