diff --git a/models/widgets_viewport.py b/models/widgets_viewport.py
index bdc6cffc432a310420530888cf81438cd2a74713..8a2986a8aad51fd5481569be04d791b0a3bba914 100644
--- a/models/widgets_viewport.py
+++ b/models/widgets_viewport.py
@@ -49,3 +49,5 @@ viewportModifier = dbui.ViewportModifier()
 viewportModifier.append_plugins('pViewportLogin')
 viewportModifier.configure(logged=True)
 viewportModifier.add_node(helpNode, formNode, gridNode, reportNode)
+
+viewportModifier.default_node(T('Tables'), T('publications'))
diff --git a/modules/plugin_dbui/converter.py b/modules/plugin_dbui/converter.py
index 57ac8fe4464f05d2fe3bdd8c37297b81bf2dde24..ba214f54c3353469d1fc5a59797269cd2239ab83 100644
--- a/modules/plugin_dbui/converter.py
+++ b/modules/plugin_dbui/converter.py
@@ -759,6 +759,9 @@ def to_viewport(**kwargs):
     if modifier_viewports:
         cfg = modifier_viewports.extjs
         
+        if modifier_viewports.default:
+            cfg['defaultTabPath'] = modifier_viewports.default
+        
     # configuration options from the keyword arguments
     cfg.update(kwargs)
     
diff --git a/modules/plugin_dbui/viewportmodifier.py b/modules/plugin_dbui/viewportmodifier.py
index 8e8848700f9965a60e713d700e782a3c1abdc62a..c84f2611ca92a85c52038c1bb4f8a1d0c476c48d 100644
--- a/modules/plugin_dbui/viewportmodifier.py
+++ b/modules/plugin_dbui/viewportmodifier.py
@@ -32,12 +32,18 @@ class ViewportModifier(Modifier):
         
         The keys of the C{data} structure are:
         
+            - C{default} (list) list of C{Node.text} defining the path of the node 
+            which will be opened at start up.
+            
             - C{extjs} (dict) Ext JS configuration options for the viewport widget.
             
             - C{nodes} (list) list of L{Node} defining the navigation tree
         
         """
         Modifier.__init__(self, MODIFIER_VIEWPORTS)
+
+        if 'default' not in self.data:
+            self.data.default = None
         
         if 'nodes' not in self.data:
             self.data.nodes = []
@@ -57,4 +63,14 @@ class ViewportModifier(Modifier):
         self.data.nodes.extend(args)
 
 
+    def default_node(self, *args):
+        """Defined the node which will be opened at start up.
+
+        @type args: list of L{Node.text}
+        @param args: define the path of the node
+        
+        """
+        self.data.default = args
+
+
 class ViewportModifierException(BaseException): pass
diff --git a/static/plugin_dbui/CHANGELOG b/static/plugin_dbui/CHANGELOG
index b415836e1adcaea9b556561cff0dc0fccd178b6c..58528f67be88d17dae4085272fe2e68ea18fd102 100644
--- a/static/plugin_dbui/CHANGELOG
+++ b/static/plugin_dbui/CHANGELOG
@@ -1,6 +1,7 @@
 --------------------------------- CHANGE LOG ----------------------------------
 
 HEAD
+  - The viewport can open a tab at startup.
 
 0.4.13.2 (Jul 2013)
   - Table callback _before_delete, _before_insert and  _before_update
diff --git a/static/plugin_dbui/src/viewport.js b/static/plugin_dbui/src/viewport.js
index aa2cb0bf27b575653c90ca6461cbebb49ca52924..4fc14f1e3f607d841b6eb18824f79cab201eb44d 100644
--- a/static/plugin_dbui/src/viewport.js
+++ b/static/plugin_dbui/src/viewport.js
@@ -1,5 +1,5 @@
 /**
- * The Viewport for the application.
+ * The ViewPort for the application.
  *
  * The type of this component is xviewport.
  *
@@ -11,13 +11,20 @@ Ext.namespace('App');
 
 App.Viewport = Ext.extend(Ext.Viewport, {
 
+    /**
+     * @cfg {array} defaultTabPath
+     * list of node.text attribute defining the path of the node
+     * to be opened at start up
+     */
+    defaultTabPath: null,
+
     /**
      * @cfg {boolean} logged true when the user pass the login procedure
      */
     logged: false,
 
     /**
-     * private shortcuts
+     * private short cuts
      */
     tabPanel: null,
     treePanel: null,
@@ -91,20 +98,44 @@ App.Viewport = Ext.extend(Ext.Viewport, {
         // apply the user configuration if any
         Ext.apply(this, cfg);
 
-        // instanciate the viewport
+        // instantiate the ViewPort
         App.Viewport.superclass.constructor.call(this);
 
-        // define shortcuts
+        // define short cuts
         this.tabPanel = this.getComponent('tabPanel');
         this.treePanel = this.getComponent('treePanel');
 
         // Add handler to create tab and their widget
         this.treePanel.on('click', this.onCreateTab, this);
 
-        // disable contextmenu in the treepanel
+        // disable ContextMenu in the TreePanel
         this.treePanel.on('contextmenu', function (node, event) {
             event.stopEvent();
         });
+
+        // open the default Tab
+        loader.on('load', this.onTreeLoaderLoaded, this);
+
+        /*
+        loader.on('load', function (treeLoader, node, response) {
+
+            var myLeaf,
+                myNode;
+
+            console.log('tree loader loaded');
+            console.log('node', node);
+
+            myNode = node.findChild('text', 'Tables');
+            myNode.expand();
+
+            myLeaf = myNode.findChild('text', 'publications');
+            console.log(myLeaf);
+            //myLeaf.select();
+            this.onCreateTab(myLeaf);
+
+            myNode.collapse();
+
+            }, this); */
     },
 
     /**
@@ -127,13 +158,12 @@ App.Viewport = Ext.extend(Ext.Viewport, {
      * @param {Object} node
      * @param {Object} event
      */
-    onCreateTab: function(node, event) {
+    onCreateTab: function (node, event) {
 
         "use strict";
 
         var cfg,
             parent = node.parentNode,
-            panel,
             tabId,
             wdgcfg = node.attributes.cfg,
             wdgtype = node.attributes.cfg.xtype;
@@ -171,8 +201,57 @@ App.Viewport = Ext.extend(Ext.Viewport, {
         }
 
         // create a new tab and activate it
-        panel = this.tabPanel.add(cfg);
+        this.tabPanel.add(cfg);
         this.tabPanel.setActiveTab(tabId);
+    },
+
+    /**
+     * Handler to Activate the default tab when the tree is loaded
+     * Expand all the nodes,  create the Tab for the leaf, collapse node.
+     * The scope is the ViewPort.
+     *
+     * @param {Ext.tree.TreeLoader} treeLoader
+     * @param {Ext.tree.TreeNode} rootNode
+     * @param {Object} response
+     */
+    onTreeLoaderLoaded: function (treeLoader, rootNode, response) {
+
+        "use strict";
+
+        var i,
+            leaf,
+            node,
+            nodes = [],
+            path = this.defaultTabPath;
+
+        if (!path) {
+            return;
+        }
+
+        // expand all intermediate nodes
+        node = rootNode;
+        for (i = 0; i < path.length; i += 1) {
+
+            node = node.findChild('text', path[i]);
+
+            if (node.isLeaf()) {
+                leaf = node;
+                break;
+            }
+
+            node.expand();
+            nodes.push(node);
+        }
+
+        // create the tab for the leaf
+        if (leaf) {
+            this.onCreateTab(leaf);
+        }
+
+        // collapse all intermediate nodes
+        for (i = 0; i < nodes.length; i += 1) {
+            nodes[i].collapse();
+        }
     }
 });