diff --git a/library/Class/Profil.php b/library/Class/Profil.php
index 517a2457f7529a6559907db7693ac6ae36d125b4..f14753384db9eecc1871d94126cf87f5118f3334 100644
--- a/library/Class/Profil.php
+++ b/library/Class/Profil.php
@@ -895,10 +895,12 @@ class Class_Profil extends Storm_Model_Abstract {
     try {
       $unserialized = ZendAfi_Filters_Serialize::unserialize($data);
     } catch (Exception $e) {
-      $unserialized = array();
+      $unserialized = [];
     }
 
-    if (!$unserialized) return array();
+    if (!$unserialized)
+      return [];
+
     return $unserialized;
   }
 
diff --git a/library/Class/Systeme/Widget/Abstract.php b/library/Class/Systeme/Widget/Abstract.php
index 7cb12ffa0f26f56ef29dc8095bd759f56d8fc013..b20785f13475c194e22dc4d90eb53c4132cbe5dd 100644
--- a/library/Class/Systeme/Widget/Abstract.php
+++ b/library/Class/Systeme/Widget/Abstract.php
@@ -23,17 +23,9 @@ abstract class Class_Systeme_Widget_Abstract extends Class_Entity {
   use Trait_Translator;
 
   public function load() {
-    if(!$this->getProfileId())
-      return null;
-
-    if(!$profil = Class_Profil::find($this->getProfileId()))
+    if(!$this->init())
       return null;
 
-    if('' == (String) $this->getId())
-      return null;
-
-    $this->setProfile($profil);
-
     if(!$this->_load())
       return null;
 
@@ -52,6 +44,21 @@ abstract class Class_Systeme_Widget_Abstract extends Class_Entity {
   }
 
 
+  public function init() {
+    if(!$this->getProfileId())
+      return null;
+
+    if(!$profil = Class_Profil::find($this->getProfileId()))
+      return null;
+
+    if('' == (String) $this->getId())
+      return null;
+
+    $this->setProfile($profil);
+    return $this;
+  }
+
+
   protected function _getTitle() {
     return $this->_getWidgetResources()->getTitle();
   }
diff --git a/library/Class/Systeme/Widget/Menu.php b/library/Class/Systeme/Widget/Menu.php
index 5e489a0711e06f24287364c3a70d20c448082de6..3114fab3b2c4c57cd9b6d1c8cf561d20598d9a53 100644
--- a/library/Class/Systeme/Widget/Menu.php
+++ b/library/Class/Systeme/Widget/Menu.php
@@ -22,10 +22,30 @@
 
 class Class_Systeme_Widget_Menu extends Class_Systeme_Widget_Abstract {
 
+  public static function findAllAsArray() {
+    $all = [];
+    $profil = Class_Profil::getCurrentProfil();
+    $datas = $profil->getCfgMenusAsArray();
+    foreach($datas as $key => $params)
+      $all[$key] = (new static())
+      ->setId($key)
+      ->setProfileId($profil->getId())
+      ->find();
+
+    return $all;
+  }
+
+
   protected function _load() {
-    return $this->_transmute($this->hasParent()
-                             ? $this->_findLeaf($this->getId())
-                             : $this->_findNode($this->getId()));
+    return $this->_transmute($this->find());
+  }
+
+
+  public function find() {
+    return $this->init()
+                ->hasParent()
+      ? $this->_findLeaf($this->getId())
+      : $this->_findNode($this->getId());
   }
 
 
diff --git a/library/ZendAfi/View/Helper/Accueil/MenuVertical.php b/library/ZendAfi/View/Helper/Accueil/MenuVertical.php
index 6667e2f3c01b1f736bb52d7bba8505d8e74f2b99..b9e66873235a0a6391b5bc76cb45c5f68fd98567 100644
--- a/library/ZendAfi/View/Helper/Accueil/MenuVertical.php
+++ b/library/ZendAfi/View/Helper/Accueil/MenuVertical.php
@@ -64,7 +64,7 @@ class ZendAfi_View_Helper_Accueil_MenuVertical extends ZendAfi_View_Helper_Accue
                                $menu_deplie ? "" : "display:none");
 
     $id_profil = $profil->getId();
-    $menus = $profil->getCfgMenusAsArray();
+    $menus = Class_Systeme_Widget_Menu::findAllAsArray();
 
     if (!isset($menus[$menu]))
       $menus = Class_Profil::getPortail()->getCfgMenusAsArray();
diff --git a/library/ZendAfi/View/Helper/Admin/Menus.php b/library/ZendAfi/View/Helper/Admin/Menus.php
index 75bfb6273382d0ea81cd031efdb3f398f15a85ef..947d81c9d315f81348a0b31cf40064e1ec0eff30 100644
--- a/library/ZendAfi/View/Helper/Admin/Menus.php
+++ b/library/ZendAfi/View/Helper/Admin/Menus.php
@@ -25,8 +25,9 @@ class ZendAfi_View_Helper_Admin_Menus extends Zendafi_View_Helper_Basehelper {
 
   public function menus() {
     $this->_profil = Class_Profil::getCurrentProfil();
-    $datas = $this->_profil->getCfgMenusAsArray();
-    $datas['H']['menus'] = (new Class_Systeme_MenuHorizontal($datas['H']['menus']))->asCfgProfil();
+
+    $datas = Class_Systeme_Widget_Menu::findAllAsArray();
+
     $html = [$this->_renderNav($datas['H'])];
     unset($datas['H']);
 
diff --git a/public/admin/css/subModal.css b/public/admin/css/subModal.css
index 8a70a5cdc3715f05be6721e1a6b5e274b7bf43a9..18e0fe7ed915a3e8af2d9f8e1346a33d25d8d59d 100644
--- a/public/admin/css/subModal.css
+++ b/public/admin/css/subModal.css
@@ -77,4 +77,18 @@ a[data-popup="true"].image-loading-status {
 
 a[data-popup="true"].image-loading-status img {
     visibility: hidden;
-}
\ No newline at end of file
+}
+
+
+.ui-dialog {
+    height: 0 !important;
+}
+
+.ui-dialog.fixed_popup {
+    position: fixed !important;
+}
+
+.ui-dialog.fixed_popup,
+.ui-dialog.fixed_popup > * {
+    height: auto !important;
+}
diff --git a/tests/scenarios/Widgets/WidgetsTest.php b/tests/scenarios/Widgets/WidgetsTest.php
index 6c817fdce8f8b7c3e0230d33f58348d3225c9cab..c42f886c17c36aa843eded0b91caa9470437658c 100644
--- a/tests/scenarios/Widgets/WidgetsTest.php
+++ b/tests/scenarios/Widgets/WidgetsTest.php
@@ -475,4 +475,34 @@ class WidgetsPostEditVerticalMenuTest extends WidgetsSimpleTestCase {
                          'picto' => '',
                          'menus' => []], Class_Profil::getCurrentProfil()->getCfgMenusAsArray()[0]);
   }
-}
\ No newline at end of file
+}
+
+
+
+
+class WidgetsVerticalMenuWithDeepMenuTest extends WidgetsSimpleTestCase {
+
+  public function setUp() {
+    parent::setUp();
+    $profil = Class_Profil::getCurrentProfil();
+    $cfg = $profil->getCfgMenusAsArray();
+    $h = $cfg['H'];
+    $cfg['V'] = $h;
+
+    $profil->setCfgMenus($cfg)->save();
+
+    $this->dispatch('admin/profil/menusindex/id_profil/2', true);
+  }
+
+
+  /** @test */
+  public function editMenuShouldBePresent() {
+    $this->assertXPath('//a[contains(@href, "admin/widget/edit-menu/id/3/id_profil/2/parent/V/")][contains(@title, "Modifier le menu")]');
+  }
+
+
+  /** @test */
+  public function editFirstSubMenuEntryShouldBePresent() {
+    $this->assertXPath('//ul//li//ul//li//a[contains(@href, "admin/widget/edit-menu/id/4/id_profil/2/parent/V/")][contains(@title, "Modifier l\'entrée")]');
+  }
+}