diff --git a/include/hpp/fcl/BV/BV_node.h b/include/hpp/fcl/BV/BV_node.h
index fc70c99a05c01330fcde059547a107568c8d3e8e..eb2c759cbdbeaa1a8078dad8ede044080b8aeb4e 100644
--- a/include/hpp/fcl/BV/BV_node.h
+++ b/include/hpp/fcl/BV/BV_node.h
@@ -105,23 +105,23 @@ struct BVNode : public BVNodeBase
   Vec3f getCenter() const { return bv.center(); }
 
   /// @brief Access the orientation of the BV
-  Matrix3f getOrientation() const { return Matrix3f::Identity(); }
+  const Matrix3f& getOrientation() const { return Matrix3f::Identity(); }
 };
 
 template<>
-inline Matrix3f BVNode<OBB>::getOrientation() const 
+inline const Matrix3f& BVNode<OBB>::getOrientation() const 
 {
   return bv.axes;
 }
 
 template<>
-inline Matrix3f BVNode<RSS>::getOrientation() const 
+inline const Matrix3f& BVNode<RSS>::getOrientation() const 
 {
   return bv.axes;
 }
 
 template<>
-inline Matrix3f BVNode<OBBRSS>::getOrientation() const 
+inline const Matrix3f& BVNode<OBBRSS>::getOrientation() const 
 {
   return bv.obb.axes;
 }