diff --git a/plugins/CoreHome/angularjs/reporting-menu/reportingmenu-model.js b/plugins/CoreHome/angularjs/reporting-menu/reportingmenu-model.js
index ca26581da02029b3c7e25388997dfb23b7fceec1..d2979772bb9b1a4f4f603748445c914c69fb06db 100644
--- a/plugins/CoreHome/angularjs/reporting-menu/reportingmenu-model.js
+++ b/plugins/CoreHome/angularjs/reporting-menu/reportingmenu-model.js
@@ -147,6 +147,7 @@
             var pagesPromise = reportingPagesModel.reloadAllPages();
             return pagesPromise.then(function (pages) {
                 model.menu = buildMenuFromPages(pages);
+                return model.menu;
             });
         }
 
diff --git a/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.controller.js b/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.controller.js
index dd2b685dc5c5fac2c55ae6dd8ed6e551223f3021..1c94136827994778c7f92541164837647911e81c 100644
--- a/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.controller.js
+++ b/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.controller.js
@@ -120,6 +120,21 @@
             }
         });
 
+        $rootScope.$on('updateReportingMenu', function () {
+            menuModel.reloadMenuItems().then(function (menu) {
+                var $search = $location.search();
+                var category    = $search.category;
+                var subcategory = $search.subcategory;
+                // we need to make sure to select same categories again
+                if (category && subcategory) {
+                    var found = menuModel.findSubcategory(category, subcategory);
+                    if (found) {
+                        enterSubcategory(found.category, found.subcategory, found.subsubcategory);
+                    }
+                }
+            });
+        });
+
         $rootScope.$on('$locationChangeSuccess', function () {
             var $search = $location.search();
             var category    = $search.category;