diff --git a/include/gepetto/viewer/corba/windows-manager.h b/include/gepetto/viewer/corba/windows-manager.h
index fd78813e639096dd97061da7f81e2ca9b4ffcb9c..f05bee8cbeb563394c471bb96a408fe2fcdf86d7 100644
--- a/include/gepetto/viewer/corba/windows-manager.h
+++ b/include/gepetto/viewer/corba/windows-manager.h
@@ -67,6 +67,7 @@ namespace graphics {
               \brief Default constructor
               */
             WindowsManager ();
+            WindowID addWindow (std::string winName, WindowManagerPtr_t newWindow);
 
         public:
             static WindowsManagerPtr_t create ();
@@ -77,7 +78,7 @@ namespace graphics {
             virtual bool setRate(const int& rate);
             virtual void refresh();
 
-            virtual WindowID createWindow(const char* windowNameCorba, osg::GraphicsContext* gc = 0);
+            virtual WindowID createWindow(const char* windowNameCorba);
             virtual WindowID getWindowID (const char* windowNameCorba);
 
             virtual void createScene(const char* sceneNameCorba);
diff --git a/src/windows-manager.cpp b/src/windows-manager.cpp
index 2c5498c009989e424481317cdb74eddc157ae305..dd2ce36525ac7eb44700021a74a8eb7500a69995 100644
--- a/src/windows-manager.cpp
+++ b/src/windows-manager.cpp
@@ -41,6 +41,15 @@ namespace graphics {
     {
     }
 
+    WindowsManager::WindowID WindowsManager::addWindow (std::string winName,
+            WindowManagerPtr_t newWindow)
+    {
+        WindowID windowId = windowManagers_.size ();
+        windowIDmap_ [winName] = windowId;
+        windowManagers_.push_back (newWindow);
+        return windowId;
+    }
+
     WindowsManagerPtr_t WindowsManager::create ()
     {
       WindowsManagerPtr_t shPtr (new WindowsManager());
@@ -192,23 +201,14 @@ namespace graphics {
         }
     }
 
-    WindowsManager::WindowID WindowsManager::createWindow (const char* winName,
-        osg::GraphicsContext* gc)
+    WindowsManager::WindowID WindowsManager::createWindow (const char* winName)
     {
         std::string wn (winName);
-        WindowManagerPtr_t newWindow;
-        if (gc == 0)
-          newWindow = WindowManager::create ();
-        else
-          newWindow = WindowManager::create (gc);
-        WindowID windowId = windowManagers_.size ();
-        windowIDmap_ [wn] = windowId;
-        windowManagers_.push_back (newWindow);
-        if (gc == 0) {
-          boost::thread refreshThread (boost::bind
-              (&WindowsManager::threadRefreshing,
-               this, newWindow));
-        }
+        WindowManagerPtr_t newWindow = WindowManager::create ();
+        WindowID windowId = addWindow (wn, newWindow);
+        boost::thread refreshThread (boost::bind
+                (&WindowsManager::threadRefreshing,
+                 this, newWindow));
         return windowId;
     }