diff --git a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_accept.xml b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_accept.xml
index 44946a17c08f635bb49892895cfa9b8204cd3169..9e8e4fc2c78adb28ebeec518af13413f846c6db3 100644
--- a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_accept.xml
+++ b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_accept.xml
@@ -61,18 +61,26 @@ if context.getDestination():\n
 elif context.getDefaultEmailCoordinateText():\n
   email = context.getDefaultEmailCoordinateText()\n
   portal = context.getPortalObject()\n
-  person_list = portal.portal_catalog.getResultValue(\n
+  person = portal.portal_catalog.getResultValue(\n
     portal_type="Person",\n
     reference=email,\n
     )\n
-  if person_list:\n
+  if person:\n
     context.reject(comment="Person already in the user data base")\n
   else:\n
-    person = portal.person_module.newContent(\n
+    person = portal.portal_catalog.getResultValue(\n
       portal_type="Person",\n
       default_email_text=email,\n
-      title=email,\n
-      )\n
+    )\n
+    if not person:\n
+      person = portal.person_module.newContent(\n
+        portal_type="Person",\n
+        default_email_text=email,\n
+        title=email,\n
+        )\n
+    elif person.getReference():\n
+      context.reject(comment="Person already in the user data base")\n
+      return\n
     context.setDestination(person.getRelativeUrl())\n
     context.accept()\n
 </string> </value>