diff --git a/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/CredentialRequest_checkLoginAvailability.xml b/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/CredentialRequest_checkLoginAvailability.xml
index 4f0be4c72fd5c68cdfaf6a3d139b3eb8181ed447..2739a7122593dcc8fb8cfcc4222013abe46d6ff4 100644
--- a/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/CredentialRequest_checkLoginAvailability.xml
+++ b/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/CredentialRequest_checkLoginAvailability.xml
@@ -57,6 +57,13 @@ Parameters:\n
 value -- field value (string)\n
 REQUEST -- standard REQUEST variable"""\n
 \n
+if value:\n
+  # Same tag is used as in Document.Person._setReference, in order to protect against\n
+  # concurrency between Credential Request and Person object too\n
+  tag = \'Person_setReference_%s\' % value.encode(\'hex\')\n
+  if context.getPortalObject().portal_activities.countMessageWithTag(tag):\n
+    return False\n
+\n
 def getRealContext():\n
   if not REQUEST:\n
     return context\n
diff --git a/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/ERP5Site_newCredentialRequest.xml b/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/ERP5Site_newCredentialRequest.xml
index b1bca901b3a795d9237fbfd33987bf1afa499b17..87e417a4d70d9eb20e5e400d19e1ed1f86021850 100644
--- a/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/ERP5Site_newCredentialRequest.xml
+++ b/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/ERP5Site_newCredentialRequest.xml
@@ -90,6 +90,9 @@ credential_request = module.newContent(\n
                 date_of_birth=date_of_birth)\n
 \n
 credential_request.setCategoryList(category_list)\n
+# Same tag is used as in Document.Person._setReference, in order to protect against\n
+# concurrency between Credential Request and Person object too\n
+credential_request.reindexObject(activate_kw=dict(tag=\'Person_setReference_%s\' % reference.encode(\'hex\')))\n
 \n
 #We attach the current user to the credential request if not anonymous\n
 if not context.portal_membership.isAnonymousUser():\n
diff --git a/bt5/erp5_credential/bt/revision b/bt5/erp5_credential/bt/revision
index e8930b6df94cf1501f2663918ee3ceb4d40c709a..55f04f2ae2c5d17c6b2a2616018b96f869677221 100644
--- a/bt5/erp5_credential/bt/revision
+++ b/bt5/erp5_credential/bt/revision
@@ -1 +1 @@
-364
\ No newline at end of file
+365
\ No newline at end of file