diff --git a/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_gadget/ERP5Site_viewRandomPageGadget.xml b/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_gadget/ERP5Site_viewRandomPageGadget.xml
index 3eb018f63ff760f0d29bff93169a569fd87bb93a..cf4aa7ac4f09e1b50b0f1d9342a7fcf33e8ef702 100644
--- a/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_gadget/ERP5Site_viewRandomPageGadget.xml
+++ b/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_gadget/ERP5Site_viewRandomPageGadget.xml
@@ -79,7 +79,12 @@ if box_relative_url:\n
 # Get the preferences (some casting of preferences would \n
 # probably be a good thing here so that there is no need\n
 # to cas them later)\n
-preferences = box.KnowledgeBox_getDefaultPreferencesDict()\n
+# \n
+# XXX RAFAEL Prevent fail if no box is provided. \n
+if box is not None:\n
+  preferences = box.KnowledgeBox_getDefaultPreferencesDict()\n
+else:\n
+  preferences = {}\n
 \n
 if web_section_url is None:\n
   web_section_url = preferences.get(\'web_section_url\', \'\') # XXX-JPS - Why do we have to do casting ? (used to be str()\n