diff --git a/src/windows-manager.cpp b/src/windows-manager.cpp
index 60c467e93e00b628cf17d8a3b03a8b5646360c9c..04c8b852b20a6f9bd7d90ce84c5614e14f13d02a 100644
--- a/src/windows-manager.cpp
+++ b/src/windows-manager.cpp
@@ -700,7 +700,9 @@ namespace graphics {
             return false;
         }
         else {
+            mtx_.lock();// if addChild is called in the same time as osg::frame(), gepetto-viewer crash
             groupNodes_[groupName]->addChild (nodes_[nodeName]);
+            mtx_.unlock();
             return true;
         }
     }