diff --git a/include/gepetto/gui/fwd.hh b/include/gepetto/gui/fwd.hh
index 1f08e99a8f587ca55d6ac0129ce933315f6eeffe..4b6c73bf3bd55280d6acee6cba602b81f3a969d1 100644
--- a/include/gepetto/gui/fwd.hh
+++ b/include/gepetto/gui/fwd.hh
@@ -17,6 +17,8 @@
 #ifndef GEPETTO_GUI_FWD_HH
 #define GEPETTO_GUI_FWD_HH
 
+#include <vector>
+
 #include <gepetto/viewer/macros.h>
 #include <gepetto/gui/config-dep.hh>
 
@@ -27,6 +29,7 @@ namespace gepetto {
     class PickHandler;
     class BodyTreeWidget;
     class BodyTreeItem;
+    typedef std::vector<BodyTreeItem*> BodyTreeItems_t;
     class ShortcutFactory;
     class SelectionHandler;
     class SelectionEvent;
diff --git a/include/gepetto/gui/windows-manager.hh b/include/gepetto/gui/windows-manager.hh
index a119d4f064eab2f83d1b435f1ee820b4dc9c9625..0870fb5f3417c915a9235a4e9a64340f7cfd0e25 100644
--- a/include/gepetto/gui/windows-manager.hh
+++ b/include/gepetto/gui/windows-manager.hh
@@ -46,8 +46,6 @@ namespace gepetto {
         typedef graphics::NodePtr_t      NodePtr_t;
         typedef graphics::GroupNodePtr_t GroupNodePtr_t;
 
-        typedef std::vector<BodyTreeItem*> BodyTreeItems_t;
-
         static WindowsManagerPtr_t create (BodyTreeWidget* bodyTree);
 
         WindowID createWindow(const std::string& windowName);
diff --git a/src/gui/bodytreewidget.cc b/src/gui/bodytreewidget.cc
index 51cea21470ab269ffc5df27e2446f372e2f4f644..785f4f18d27093fd677684ebb1d5e3ac968a9cc8 100644
--- a/src/gui/bodytreewidget.cc
+++ b/src/gui/bodytreewidget.cc
@@ -59,24 +59,19 @@ namespace gepetto {
 
     void BodyTreeWidget::selectBodyByName(const QString bodyName)
     {
-      QList<QStandardItem*> matches;
-      if (!bodyName.isEmpty() && !bodyName.isNull()) {
-        matches = model_->findItems(bodyName, Qt::MatchFixedString
-            | Qt::MatchCaseSensitive
-            | Qt::MatchRecursive);
-      }
-      if (matches.empty()) {
-        qDebug () << "Body" << bodyName << "not found.";
-        view_->clearSelection();
-      } else {
-        view_->setCurrentIndex(matches.first()->index());
-      }
+      qDebug () << "Use std::string instead of QString";
+      return selectBodyByName (bodyName.toStdString());
     }
 
     void BodyTreeWidget::selectBodyByName (const std::string& bodyName)
     {
-      qDebug () << "Use QString instead of std::string";
-      return selectBodyByName (QString::fromStdString (bodyName));
+      BodyTreeItems_t bodies = osg_->bodyTreeItems (bodyName);
+      if (bodies.empty()) {
+        qDebug () << "Body" << bodyName.c_str() << "not found.";
+        view_->clearSelection();
+      } else {
+        view_->setCurrentIndex(bodies[0]->index());
+      }
     }
 
     void BodyTreeWidget::handleSelectionEvent (const SelectionEvent* event)
@@ -86,8 +81,7 @@ namespace gepetto {
           this, SLOT (currentChanged(QModelIndex,QModelIndex)));
       BodyTreeItem* item = NULL;
       if (event->node()) {
-        WindowsManager::BodyTreeItems_t matches =
-          osg_->bodyTreeItems(event->node()->getID());
+        BodyTreeItems_t matches = osg_->bodyTreeItems(event->node()->getID());
 
         if (matches.empty())
           view_->clearSelection();
diff --git a/src/gui/tree-item.cc b/src/gui/tree-item.cc
index a6997c124937171fab612d0eef7efe3406a6c094..e6717701e3dde8468f48921f1d2ddda4ba2b86f6 100644
--- a/src/gui/tree-item.cc
+++ b/src/gui/tree-item.cc
@@ -114,13 +114,10 @@ namespace gepetto {
 
     BodyTreeItem::BodyTreeItem(QObject *parent, graphics::NodePtr_t node) :
       QObject (parent),
-      QStandardItem (QString (node->getID().c_str())),
+      QStandardItem (QString::fromStdString (node->getID().substr(node->getID().find_last_of("/") + 1))),
       node_ (node)
     {
       setEditable(false);
-
-      const std::string & name = node->getID();
-      QStandardItem::setText(name.substr(name.find_last_of("/") + 1).c_str());
     }
 
     void BodyTreeItem::initialize ()
diff --git a/src/gui/windows-manager.cc b/src/gui/windows-manager.cc
index 71bc0b122100b4d5199be8e0e4b213ecc8589873..83a2d91922730eb89c2306537a1876b80be69167 100644
--- a/src/gui/windows-manager.cc
+++ b/src/gui/windows-manager.cc
@@ -149,7 +149,7 @@ namespace gepetto {
       return ret;
     }
 
-    WindowsManager::BodyTreeItems_t WindowsManager::bodyTreeItems (const std::string& name) const
+    BodyTreeItems_t WindowsManager::bodyTreeItems (const std::string& name) const
     {
       BodyTreeItemMap_t::const_iterator _btis = nodeItemMap_.find(name);
       if (_btis != nodeItemMap_.end())