diff --git a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Campaign_getResourceItemList.xml b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Campaign_getResourceItemList.xml
index ac6c19f095bde0c9d593dcce6c5e97593192fb94..73aa5eaa8a18bce7712ca60bd94fb13ecba3937a 100644
--- a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Campaign_getResourceItemList.xml
+++ b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Campaign_getResourceItemList.xml
@@ -57,14 +57,20 @@ by ListField instances.\n
 """\n
 from zExceptions import Unauthorized\n
 from Products.ERP5Type.Cache import CachingMethod\n
+portal = context.getPortalObject()\n
 \n
 def getResourceItemList():\n
   result = [(\'\', \'\')]\n
-  url_list = context.portal_preferences.getPreferredCampaignResourceList()\n
+  url_list = portal.portal_preferences.getPreferredCampaignResourceList()\n
   for url in url_list:\n
     try:\n
-      resource_value = context.getPortalObject().restrictedTraverse(url)\n
-      result.append((resource_value.getTranslatedTitle(), resource_value.getRelativeUrl()))\n
+      resource_value = portal.restrictedTraverse(url, None)\n
+      if resource_value is not None:\n
+        if resource_value.getPortalType() == \'Category\':\n
+          category_relative_url = resource_value.getCategoryRelativeUrl()\n
+        else:\n
+          category_relative_url = resource_value.getRelativeUrl()\n
+        result.append((resource_value.getTranslatedTitle(), category_relative_url))\n
     except Unauthorized:\n
       pass\n
   return result\n
diff --git a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_getResourceItemList.xml b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_getResourceItemList.xml
index 4da227cba90aa1dffb9f40b920efa7d4a0048ccc..2cb1e756162fe6287eb529cd23387d7215f08c08 100644
--- a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_getResourceItemList.xml
+++ b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_getResourceItemList.xml
@@ -57,15 +57,20 @@ by ListField instances.\n
 """\n
 from zExceptions import Unauthorized\n
 from Products.ERP5Type.Cache import CachingMethod\n
+portal = context.getPortalObject()\n
 \n
 def getResourceItemList():\n
   result = [(\'\', \'\')]\n
-  url_list = context.portal_preferences.getPreferredEventResourceList()\n
+  url_list = portal.portal_preferences.getPreferredEventResourceList()\n
   for url in url_list:\n
     try:\n
-      resource_value = context.getPortalObject().restrictedTraverse(url, None)\n
+      resource_value = portal.restrictedTraverse(url, None)\n
       if resource_value is not None:\n
-        result.append((resource_value.getTranslatedTitle(), resource_value.getRelativeUrl()))\n
+        if resource_value.getPortalType() == \'Category\':\n
+          category_relative_url = resource_value.getCategoryRelativeUrl()\n
+        else:\n
+          category_relative_url = resource_value.getRelativeUrl()\n
+        result.append((resource_value.getTranslatedTitle(), category_relative_url))\n
     except Unauthorized:\n
       pass\n
   return result\n
@@ -73,7 +78,7 @@ def getResourceItemList():\n
 getResourceItemList = CachingMethod(getResourceItemList, \n
       id=(script.id, context.Localizer.get_selected_language()), \n
       cache_factory=\'erp5_ui_long\')\n
-                                 \n
+\n
 return getResourceItemList()\n
 </string> </value>
         </item>
diff --git a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Meeting_getResourceItemList.xml b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Meeting_getResourceItemList.xml
index 6302c4e234b3895bd86ed794d2802dea07933e82..773aa49bc58967b953afcb2d11794bebd5e9edc5 100644
--- a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Meeting_getResourceItemList.xml
+++ b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Meeting_getResourceItemList.xml
@@ -57,14 +57,20 @@ by ListField instances.\n
 """\n
 from zExceptions import Unauthorized\n
 from Products.ERP5Type.Cache import CachingMethod\n
+portal = context.getPortalObject()\n
 \n
 def getResourceItemList():\n
   result = [(\'\', \'\')]\n
-  url_list = context.portal_preferences.getPreferredMeetingResourceList()\n
+  url_list = portal.portal_preferences.getPreferredMeetingResourceList()\n
   for url in url_list:\n
     try:\n
-      resource_value = context.getPortalObject().restrictedTraverse(url)\n
-      result.append((resource_value.getTranslatedTitle(), resource_value.getRelativeUrl()))\n
+      resource_value = portal.restrictedTraverse(url, None)\n
+      if resource_value is not None:\n
+        if resource_value.getPortalType() == \'Category\':\n
+          category_relative_url = resource_value.getCategoryRelativeUrl()\n
+        else:\n
+          category_relative_url = resource_value.getRelativeUrl()\n
+        result.append((resource_value.getTranslatedTitle(), category_relative_url))\n
     except Unauthorized:\n
       pass\n
   return result\n
diff --git a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/SaleOpportunity_getResourceItemList.xml b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/SaleOpportunity_getResourceItemList.xml
index 9bf918f4944ee433faf0268a36f47a1a234806b8..2a411cf1cd5cfe59a7970b5dd33ca962a056245a 100644
--- a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/SaleOpportunity_getResourceItemList.xml
+++ b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/SaleOpportunity_getResourceItemList.xml
@@ -57,14 +57,20 @@ by ListField instances.\n
 """\n
 from zExceptions import Unauthorized\n
 from Products.ERP5Type.Cache import CachingMethod\n
+portal = context.getPortalObject()\n
 \n
 def getResourceItemList():\n
   result = [(\'\', \'\')]\n
-  url_list = context.portal_preferences.getPreferredSaleOpportunityResourceList()\n
+  url_list = portal.portal_preferences.getPreferredSaleOpportunityResourceList()\n
   for url in url_list:\n
     try:\n
-      resource_value = context.getPortalObject().restrictedTraverse(url)\n
-      result.append((resource_value.getTranslatedTitle(), resource_value.getRelativeUrl()))\n
+      resource_value = portal.restrictedTraverse(url, None)\n
+      if resource_value is not None:\n
+        if resource_value.getPortalType() == \'Category\':\n
+          category_relative_url = resource_value.getCategoryRelativeUrl()\n
+        else:\n
+          category_relative_url = resource_value.getRelativeUrl()\n
+        result.append((resource_value.getTranslatedTitle(), category_relative_url))\n
     except Unauthorized:\n
       pass\n
   return result\n
diff --git a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/SupportRequest_getResourceItemList.xml b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/SupportRequest_getResourceItemList.xml
index c3b28b671d3e1a31a67d581ea3bc1831dd951995..0fd18b529317ff2733778cc14b39e1eafa7f53e0 100644
--- a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/SupportRequest_getResourceItemList.xml
+++ b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/SupportRequest_getResourceItemList.xml
@@ -57,14 +57,20 @@ by ListField instances.\n
 """\n
 from zExceptions import Unauthorized\n
 from Products.ERP5Type.Cache import CachingMethod\n
+portal = context.getPortalObject()\n
 \n
 def getResourceItemList():\n
   result = [(\'\', \'\')]\n
-  url_list = context.portal_preferences.getPreferredSupportRequestResourceList()\n
+  url_list = portal.portal_preferences.getPreferredSupportRequestResourceList()\n
   for url in url_list:\n
     try:\n
-      resource_value = context.getPortalObject().restrictedTraverse(url)\n
-      result.append((resource_value.getTranslatedTitle(), resource_value.getRelativeUrl()))\n
+      resource_value = portal.restrictedTraverse(url, None)\n
+      if resource_value is not None:\n
+        if resource_value.getPortalType() == \'Category\':\n
+          category_relative_url = resource_value.getCategoryRelativeUrl()\n
+        else:\n
+          category_relative_url = resource_value.getRelativeUrl()\n
+        result.append((resource_value.getTranslatedTitle(), category_relative_url))\n
     except Unauthorized:\n
       pass\n
   return result\n
diff --git a/bt5/erp5_crm/bt/revision b/bt5/erp5_crm/bt/revision
index 3e990b743e961c843004fbca714976a274c86afd..28621d35adae761a9610140bce7572be86f10c78 100644
--- a/bt5/erp5_crm/bt/revision
+++ b/bt5/erp5_crm/bt/revision
@@ -1 +1 @@
-541
\ No newline at end of file
+542
\ No newline at end of file