diff --git a/dockingvl/src/main/java/fr/soleil/docking/vl/SoleilDockingDesktop.java b/dockingvl/src/main/java/fr/soleil/docking/vl/SoleilDockingDesktop.java
index 0c344dc8bed7812bbf72ca8d05351ac3127061e2..1f17120b784b08c0edd66cad830539332a519ac3 100644
--- a/dockingvl/src/main/java/fr/soleil/docking/vl/SoleilDockingDesktop.java
+++ b/dockingvl/src/main/java/fr/soleil/docking/vl/SoleilDockingDesktop.java
@@ -25,9 +25,9 @@ import fr.soleil.docking.vl.view.VlDockView;
 
 public class SoleilDockingDesktop extends DockingDesktop {
 
-    private static final long serialVersionUID = -2283595226822086501L;
+    private static final long serialVersionUID = -6192752805034560434L;
 
-    protected Map<String, RelativeDockablePosition> closedPositions = new HashMap<String, RelativeDockablePosition>();
+    protected final Map<String, RelativeDockablePosition> closedPositions;
 
     protected boolean closeEnabled;
     protected boolean autoHideEnabled;
@@ -40,17 +40,17 @@ public class SoleilDockingDesktop extends DockingDesktop {
 
     public SoleilDockingDesktop(boolean close, boolean autoHide, boolean maximize, boolean floating) {
         super();
+        closedPositions = new HashMap<>();
         closeEnabled = close;
         autoHideEnabled = autoHide;
         maximizeEnabled = maximize;
         floatingEnabled = floating;
         addDockingActionListener(generateDockingActionListener());
         addDockableSelectionListener(new DockableSelectionListener() {
-
             @Override
-            public void selectionChanged(DockableSelectionEvent arg0) {
-                if (arg0.getSelectedDockable() instanceof VlDockView) {
-                    ((VlDockView) arg0.getSelectedDockable()).focusGained(null);
+            public void selectionChanged(DockableSelectionEvent dse) {
+                if (dse.getSelectedDockable() instanceof VlDockView) {
+                    ((VlDockView) dse.getSelectedDockable()).focusGained(null);
                 }
             }
         });
@@ -92,12 +92,13 @@ public class SoleilDockingDesktop extends DockingDesktop {
 
     public void showDockable(Dockable dockable) {
         DockableState state = getDockableState(dockable);
-        if (state == null || Location.CLOSED.equals(state.getLocation()) || Location.HIDDEN.equals(state.getLocation())) {
+        if (state == null || Location.CLOSED.equals(state.getLocation())
+                || Location.HIDDEN.equals(state.getLocation())) {
             RelativeDockablePosition position = getPositionForClosedView(dockable);
-            if (position != null) {
-                addDockable(dockable, position);
-            } else {
+            if (position == null) {
                 addDockable(dockable);
+            } else {
+                addDockable(dockable, position);
             }
         }
     }
diff --git a/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java b/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java
index 48bc600f7759b5c0d77a4c4fc02319e84e630f35..dfb6a561d491f1311a97be6a0f0ff96a9e3b9227 100644
--- a/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java
+++ b/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java
@@ -21,6 +21,8 @@ import com.vldocking.swing.docking.DockKey;
 import com.vldocking.swing.docking.Dockable;
 import com.vldocking.swing.docking.DockableState;
 import com.vldocking.swing.docking.DockableState.Location;
+import com.vldocking.swing.docking.DockingUtilities;
+import com.vldocking.swing.docking.TabbedDockableContainer;
 import com.vldocking.swing.docking.event.DockingActionCloseEvent;
 import com.vldocking.swing.docking.event.DockingActionEvent;
 import com.vldocking.swing.docking.event.DockingActionListener;
@@ -110,9 +112,13 @@ public class VlDockView implements IView, Dockable, DockingActionListener, Focus
     @Override
     public void select() {
         setVisible(true);
-        // TODO Doesn't work !!!!!!
         focus(component, true);
         focusGained(new FocusEvent(component, FocusEvent.FOCUS_GAINED));
+        // Following code is the one that really works
+        TabbedDockableContainer tabbedDockableContainer = DockingUtilities.findTabbedDockableContainer(this);
+        if (tabbedDockableContainer != null) {
+            tabbedDockableContainer.setSelectedDockable(this);
+        }
     }
 
     protected static boolean focus(Component comp, boolean forceFocus) {