Index: OpenSceneGraph/trunk/examples/osganimationhardware/osganimationhardware.cpp
===================================================================
--- OpenSceneGraph/trunk/examples/osganimationhardware/osganimationhardware.cpp (revision 10923)
+++ OpenSceneGraph/trunk/examples/osganimationhardware/osganimationhardware.cpp (revision 11009)
@@ -30,4 +30,5 @@
 #include <osgAnimation/RigTransformHardware>
 #include <osgAnimation/AnimationManagerBase>
+#include <osgAnimation/BoneMapVisitor>
 
 #include <sstream>
@@ -44,4 +45,13 @@
 struct MyRigTransformHardware : public osgAnimation::RigTransformHardware
 {
+
+    void operator()(osgAnimation::RigGeometry& geom)
+    {
+        if (_needInit)
+            if (!init(geom))
+                return;
+        computeMatrixPaletteUniform(geom.getMatrixFromSkeletonToGeometry(), geom.getInvMatrixFromSkeletonToGeometry());
+    }
+
     bool init(osgAnimation::RigGeometry& geom)
     {
@@ -57,5 +67,7 @@
         }
 
-        osgAnimation::Bone::BoneMap bm = geom.getSkeleton()->getBoneMap();
+        osgAnimation::BoneMapVisitor mapVisitor;
+        geom.getSkeleton()->accept(mapVisitor);
+        osgAnimation::BoneMap bm = mapVisitor.getBoneMap();
 
         if (!createPalette(pos->size(),bm, geom.getVertexInfluenceSet().getVertexToBoneList()))
@@ -137,6 +149,9 @@
         }
 
+#if 0
         if (geom.getName() != std::string("BoundingBox")) // we disable compute of bounding box for all geometry except our bounding box
             geom.setComputeBoundingBoxCallback(new osg::Drawable::ComputeBoundingBoxCallback);
+//            geom.setInitialBound(new osg::Drawable::ComputeBoundingBoxCallback);
+#endif
     }
 };
