Index: OpenSceneGraph/trunk/src/osgAnimation/Skeleton.cpp
===================================================================
--- OpenSceneGraph/trunk/src/osgAnimation/Skeleton.cpp (revision 10751)
+++ OpenSceneGraph/trunk/src/osgAnimation/Skeleton.cpp (revision 11009)
@@ -15,12 +15,13 @@
 #include <osgAnimation/Skeleton>
 #include <osgAnimation/Bone>
+#include <osg/Notify>
 
 using namespace osgAnimation;
 
 Skeleton::Skeleton() {}
-Skeleton::Skeleton(const Skeleton& b, const osg::CopyOp& copyop) : Bone(b,copyop) {}
+Skeleton::Skeleton(const Skeleton& b, const osg::CopyOp& copyop) : osg::MatrixTransform(b,copyop) {}
 
 Skeleton::UpdateSkeleton::UpdateSkeleton() : _needValidate(true) {}
-Skeleton::UpdateSkeleton::UpdateSkeleton(const UpdateSkeleton& us, const osg::CopyOp& copyop= osg::CopyOp::SHALLOW_COPY) : osg::Object(us, copyop), osg::NodeCallback(us, copyop) 
+Skeleton::UpdateSkeleton::UpdateSkeleton(const UpdateSkeleton& us, const osg::CopyOp& copyop= osg::CopyOp::SHALLOW_COPY) : osg::Object(us, copyop), osg::NodeCallback(us, copyop)
 {
     _needValidate = true;
@@ -46,5 +47,5 @@
         bool foundNonBone = false;
 
-        for (unsigned i = 0; i < bone->getNumChildren(); ++i)
+        for (unsigned int i = 0; i < bone->getNumChildren(); ++i)
         {
             if (dynamic_cast<Bone*>(bone->getChild(i)))
@@ -77,9 +78,11 @@
         {
             ValidateSkeletonVisitor visitor;
-            node->accept(visitor);
+            for (unsigned int i = 0; i < skeleton->getNumChildren(); ++i)
+            {
+                osg::Node* child = skeleton->getChild(i);
+                child->accept(visitor);
+            }
             _needValidate = false;
         }
-        if (skeleton->needToComputeBindMatrix())
-            skeleton->computeBindMatrix();
     }
     traverse(node,nv);
@@ -90,8 +93,2 @@
     setUpdateCallback(new Skeleton::UpdateSkeleton );
 }
-
-void Skeleton::computeBindMatrix() 
-{
-    _invBindInSkeletonSpace = osg::Matrix::inverse(_bindInBoneSpace); 
-    _needToRecomputeBindMatrix = false; 
-}
