diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_js.js
index 7122e0f194011db35e70f50e17188df828396b14..e11f246a48f3693d3135423a6a4c3b6b8d8cb98e 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_js.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_js.js
@@ -64,14 +64,13 @@
   }
 
   function updateHeader(gadget) {
-    var header_gadget;
-    return gadget.getDeclaredGadget("header")
-      .push(function (result) {
-        header_gadget = result;
-        return header_gadget.notifySubmitted();
+    return route(gadget, "header", 'notifySubmitted')
+      .push(function () {
+        return route(gadget, 'header', 'notifyLoaded');
       })
       .push(function () {
-        return header_gadget.render(gadget.props.header_argument_list);
+        return route(gadget, "header", 'render',
+                     [gadget.props.header_argument_list]);
       });
   }
 
@@ -79,49 +78,8 @@
     return route(gadget, 'panel', 'render', [gadget.props.panel_argument_list]);
   }
 
-  function increaseLoadingCounter(gadget) {
-    gadget.props.loading_counter += 1;
-    if (gadget.props.loading_counter === 1) {
-      return route(gadget, 'header', 'notifyLoading');
-    }
-    return new RSVP.Queue();
-  }
-
-  function decreaseLoadingCounter(gadget) {
-    gadget.props.loading_counter -= 1;
-    if (gadget.props.loading_counter < 0) {
-      gadget.props.loading_counter = 0;
-      // throw new Error("Unexpected negative loading counter");
-    }
-    if (gadget.props.loading_counter === 0) {
-      return route(gadget, 'header', 'notifyLoaded');
-    }
-    return new RSVP.Queue();
-  }
-
   function callJioGadget(gadget, method, param_list) {
-    var called = true;
-    return increaseLoadingCounter(gadget)
-      .push(function () {
-        return gadget.getDeclaredGadget("jio_gadget");
-      })
-      .push(function (jio_gadget) {
-        return jio_gadget[method].apply(jio_gadget, param_list);
-      })
-      .push(function (result) {
-        return decreaseLoadingCounter(gadget)
-          .push(function () {
-            return result;
-          });
-      }, function (error) {
-        if (called) {
-          return decreaseLoadingCounter(gadget)
-            .push(function () {
-              throw error;
-            });
-        }
-        throw error;
-      });
+    return route(gadget, 'jio_gadget', method, param_list);
   }
 
   function displayErrorContent(gadget, error) {
@@ -220,7 +178,6 @@
         setting_gadget,
         setting;
       this.props = {
-        loading_counter: 0,
         content_element: this.element.querySelector('.gadget-content')
       };
       // Configure setting storage
@@ -575,6 +532,15 @@
       promise_list = [];
 
       // Update the main gadget
+      if (modification_dict.hasOwnProperty('render_timestamp')) {
+        // By default, init the header options to be empty
+        // (ERP5 title by default + sidebar)
+        initHeaderOptions(gadget);
+        initPanelOptions(gadget);
+        if (!modification_dict.hasOwnProperty('first_bootstrap')) {
+          promise_list.push(route(gadget, 'header', 'notifyLoading'));
+        }
+      }
       if (modification_dict.hasOwnProperty('url')) {
         promise_list.push(renderMainGadget(
           gadget,
@@ -657,33 +623,19 @@
     // Render the page
     .declareMethod('render', function render(route_result, keep_message) {
       var gadget = this;
-
-      // Reinitialize the loading counter
-      gadget.props.loading_counter = 0;
-      // By default, init the header options to be empty
-      // (ERP5 title by default + sidebar)
-      initHeaderOptions(gadget);
-      initPanelOptions(gadget);
-      return increaseLoadingCounter(gadget)
-        .push(function () {
-          return gadget.changeState({
-            url: route_result.url,
-            options: route_result.options,
-            panel_visible: false,
-            editor_panel_url: undefined,
-            notification_options: (keep_message === true) ?
-                                  gadget.state.notification_options : undefined,
-            // Force calling main gadget render
-            render_timestamp: new Date().getTime()
-          });
-        })
-        .push(function () {
-          return decreaseLoadingCounter(gadget);
-        }, function (error) {
-          return decreaseLoadingCounter(gadget)
-            .push(function () {
-              return displayError(gadget, error);
-            });
+      return gadget.changeState({
+        first_bootstrap: true,
+        url: route_result.url,
+        options: route_result.options,
+        panel_visible: false,
+        editor_panel_url: undefined,
+        notification_options: (keep_message === true) ?
+                              gadget.state.notification_options : undefined,
+        // Force calling main gadget render
+        render_timestamp: new Date().getTime()
+      })
+        .push(undefined, function (error) {
+          return displayError(gadget, error);
         });
     })
 
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_js.xml
index 321da13f73ab0cc19787d5cc446cb8b873acb144..46c79a0212b00d03b0c808255af15dc55bd388e0 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_js.xml
@@ -230,7 +230,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>971.13462.14418.45004</string> </value>
+                <value> <string>971.17819.63775.64836</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -248,7 +248,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1540805328.09</float>
+                        <float>1540990953.44</float>
                         <string>UTC</string>
                       </tuple>
                     </state>