diff --git a/include/gepetto/gui/mainwindow.hh b/include/gepetto/gui/mainwindow.hh
index e92f8874429abc460edbbc0f8ebd6c473eac6742..945372354be51f6342007ceedb0045e66d0fb636 100644
--- a/include/gepetto/gui/mainwindow.hh
+++ b/include/gepetto/gui/mainwindow.hh
@@ -139,7 +139,6 @@ signals:
           /// \param text text to log
           void logJobFailed  (int id, const QString& text);
 
-        OSGWidget* createView (const QString& name);
         /// Request a refresh of the interface.
         /// \param refreshType tells what to refresh. See RefreshType
         void requestRefresh ();
diff --git a/src/gui/mainwindow.cc b/src/gui/mainwindow.cc
index 6c4a1eeac603d764587d415c366b128e013204c7..5973824fe7d8831e33b5961fab427a84e621357e 100644
--- a/src/gui/mainwindow.cc
+++ b/src/gui/mainwindow.cc
@@ -210,11 +210,6 @@ namespace gepetto {
       emit logErrorString (QString ("Job ") + QString::number (id) + " failed: " + text);
     }
 
-    OSGWidget *MainWindow::createView(const QString& name)
-    {
-      return createView (name.toStdString());
-    }
-
     OSGWidget *MainWindow::createView(const std::string& name)
     {
       if (thread() != QThread::currentThread()) {
diff --git a/src/gui/python-decorator.hh b/src/gui/python-decorator.hh
index 0fb50c5f51e0c52b53a986cf14b32635475e62ea..35ff55e2f3cc8b36caa465568616a9c8b6777856 100644
--- a/src/gui/python-decorator.hh
+++ b/src/gui/python-decorator.hh
@@ -13,9 +13,23 @@ namespace gepetto {
       Q_OBJECT
 
       public slots:
+      /// \name MainWindow
+      /// \{
+
       MainWindow* static_MainWindow_instance () const { return MainWindow::instance (); }
 
+      QList <OSGWidget*> osgWindows (MainWindow* w) const { return w->osgWindows(); }
+
+      OSGWidget* createView (MainWindow* w, const QString& name) const { return w->createView(name.toStdString()); }
+
+      /// \}
+
+      /// \name OSGWidget
+      /// \{
+
       int windowID (OSGWidget* o) const { return o->windowID(); }
+
+      /// \}
     };
   } // namespace gui
 } // namespace gepetto