diff --git a/include/sot-dynamic-pinocchio/dynamic-pinocchio.h b/include/sot-dynamic-pinocchio/dynamic-pinocchio.h
index 4038c6df716b754fef04a04e04a3bf92adfb6b16..e7800865acafb23cead4467e7c550572c936d6d3 100644
--- a/include/sot-dynamic-pinocchio/dynamic-pinocchio.h
+++ b/include/sot-dynamic-pinocchio/dynamic-pinocchio.h
@@ -137,15 +137,19 @@ class SOTDYNAMIC_EXPORT DynamicPinocchio
   dg::SignalPtr<dg::Vector,int> jointAccelerationSIN;
   dg::SignalPtr<dg::Vector,int> freeFlyerAccelerationSIN;
   
+  dg::SignalTimeDependent<dg::Vector,int> pinocchioPosSINTERN;
+  dg::SignalTimeDependent<dg::Vector,int> pinocchioVelSINTERN;
+  dg::SignalTimeDependent<dg::Vector,int> pinocchioAccSINTERN;
+
   dg::SignalTimeDependent<Dummy,int> newtonEulerSINTERN;
   dg::SignalTimeDependent<Dummy,int> jacobiansSINTERN;
   dg::SignalTimeDependent<Dummy,int> forwardKinematicsSINTERN;
   dg::SignalTimeDependent<Dummy,int> ccrbaSINTERN;
 
-  int& computeNewtonEuler( int& dummy,int time );
-  int& computeForwardKinematics( int& dummy,int time );
-  int& computeCcrba( int& dummy,int time );
-  int& computeJacobians( int& dummy,int time );
+  int& computeNewtonEuler(int& dummy,const int& time );
+  int& computeForwardKinematics(int& dummy,const int& time );
+  int& computeCcrba( int& dummy,const int& time );
+  int& computeJacobians( int& dummy,const int& time );
   
   dg::SignalTimeDependent<dg::Vector,int> zmpSOUT;
   dg::SignalTimeDependent<dg::Matrix,int> JcomSOUT;
@@ -193,50 +197,50 @@ class SOTDYNAMIC_EXPORT DynamicPinocchio
   ///
   /// \param[out] result vector
   /// \return result vector
-  dg::Vector& getLowerPositionLimits(dg::Vector& res,const int&);
+  dg::Vector& getLowerPositionLimits(dg::Vector& res,const int&) const ;
 
   /// \brief Get joint position upper limits
   ///
   /// \param[out] result vector
   /// \return result vector
-  dg::Vector& getUpperPositionLimits(dg::Vector& res,const int&);
+  dg::Vector& getUpperPositionLimits(dg::Vector& res,const int&) const;
 
   /// \brief Get joint velocity upper limits
   ///
   /// \param[out] result vector
   /// \return result vector
-  dg::Vector& getUpperVelocityLimits(dg::Vector& res,const int&);
+  dg::Vector& getUpperVelocityLimits(dg::Vector& res,const int&) const;
 
   /// \brief Get joint effort upper limits
   ///
   /// \param[out] result vector
   /// \return result vector
-  dg::Vector& getMaxEffortLimits(dg::Vector& res,const int&);
+  dg::Vector& getMaxEffortLimits(dg::Vector& res,const int&) const;
 
 
   //  dg::Vector& getAnklePositionInFootFrame() const;
 
     protected:
-  dg::Matrix& computeGenericJacobian(bool isFrame,
-				     int jointId,
-				     dg::Matrix& res,int time );
-  dg::Matrix& computeGenericEndeffJacobian(bool isFrame,
-					   int jointId,
-					   dg::Matrix& res,int time );
-  MatrixHomogeneous& computeGenericPosition(bool isFrame, 
-					    int jointId,
-					    MatrixHomogeneous& res,int time );
-  dg::Vector& computeGenericVelocity(int jointId,dg::Vector& res,int time );
-  dg::Vector& computeGenericAcceleration(int jointId,dg::Vector& res,int time );
-
-  dg::Vector& computeZmp( dg::Vector& res,int time );
-  dg::Vector& computeMomenta( dg::Vector &res, int time);
-  dg::Vector& computeAngularMomentum( dg::Vector &res, int time);
-  dg::Matrix& computeJcom( dg::Matrix& res,int time );
-  dg::Vector& computeCom( dg::Vector& res,int time );
-  dg::Matrix& computeInertia( dg::Matrix& res,int time );
-  dg::Matrix& computeInertiaReal( dg::Matrix& res,int time );
-  double& computeFootHeight( double& res,int time );
+  dg::Matrix& computeGenericJacobian(const bool isFrame,
+				     const int jointId,
+				     dg::Matrix& res,const int& time );
+  dg::Matrix& computeGenericEndeffJacobian(const bool isFrame,
+					   const int jointId,
+					   dg::Matrix& res,const int& time );
+  MatrixHomogeneous& computeGenericPosition(const bool isFrame, 
+					    const int jointId,
+					    MatrixHomogeneous& res,const int& time );
+  dg::Vector& computeGenericVelocity(const int jointId,dg::Vector& res,const int& time );
+  dg::Vector& computeGenericAcceleration(const int jointId,dg::Vector& res,const int& time );
+
+  dg::Vector& computeZmp( dg::Vector& res,const int& time );
+  dg::Vector& computeMomenta( dg::Vector &res,const  int& time);
+  dg::Vector& computeAngularMomentum( dg::Vector &res,const  int& time);
+  dg::Matrix& computeJcom( dg::Matrix& res,const int& time );
+  dg::Vector& computeCom( dg::Vector& res,const int& time );
+  dg::Matrix& computeInertia( dg::Matrix& res,const int& time );
+  dg::Matrix& computeInertiaReal( dg::Matrix& res,const int& time );
+  double& computeFootHeight( double& res,const int& time );
 
   dg::Vector& computeTorqueDrift( dg::Vector& res,const int& time );
 
@@ -252,9 +256,9 @@ class SOTDYNAMIC_EXPORT DynamicPinocchio
  private:
   /// \brief map of joints in construction.
   /// map: jointName -> (jointType,jointPosition (in parent frame), function_ptr to pinocchio Joint) 
-  dg::Vector getPinocchioPos(int);
-  dg::Vector getPinocchioVel(int);
-  dg::Vector getPinocchioAcc(int);
+  dg::Vector& getPinocchioPos(dg::Vector& q,const int& time);
+  dg::Vector& getPinocchioVel(dg::Vector& v, const int& time);
+  dg::Vector& getPinocchioAcc(dg::Vector& a, const int&time);
   
   //\brief Index list for the first dof of (spherical joints)/ (spherical part of free-flyer joint).
   std::vector<int> sphericalJoints;
diff --git a/src/sot-dynamic-pinocchio.cpp b/src/sot-dynamic-pinocchio.cpp
index 3d589a432df05b050d3046ade35dbf6dc182f3e5..51cb88dbca2b2284b20e42fa0b717de79c4d653c 100644
--- a/src/sot-dynamic-pinocchio.cpp
+++ b/src/sot-dynamic-pinocchio.cpp
@@ -54,37 +54,42 @@ DynamicPinocchio( const std::string & name)
   ,jointAccelerationSIN(NULL,"sotDynamic("+name+")::input(vector)::acceleration")
   ,freeFlyerAccelerationSIN(NULL,"sotDynamic("+name+")::input(vector)::ffacceleration")
 
+  ,pinocchioPosSINTERN( boost::bind(&DynamicPinocchio::getPinocchioPos,this,_1, _2),
+                        jointPositionSIN<<freeFlyerPositionSIN,
+                        "sotDynamic("+name+")::intern(dummy)::pinocchioPos" )
+  ,pinocchioVelSINTERN( boost::bind(&DynamicPinocchio::getPinocchioVel,this,_1, _2),
+                         jointVelocitySIN<<freeFlyerVelocitySIN,
+                         "sotDynamic("+name+")::intern(dummy)::pinocchioVel" )   
+  ,pinocchioAccSINTERN( boost::bind(&DynamicPinocchio::getPinocchioAcc,this,_1, _2),
+                        jointAccelerationSIN<<freeFlyerAccelerationSIN,
+                        "sotDynamic("+name+")::intern(dummy)::pinocchioAcc" )
+
   ,newtonEulerSINTERN( boost::bind(&DynamicPinocchio::computeNewtonEuler,this,_1,_2),
-		       jointPositionSIN<<freeFlyerPositionSIN
-		       <<jointVelocitySIN<<freeFlyerVelocitySIN
-		       <<jointAccelerationSIN<<freeFlyerAccelerationSIN,
+                       pinocchioPosSINTERN<<pinocchioVelSINTERN<<pinocchioAccSINTERN,
 		       "sotDynamic("+name+")::intern(dummy)::newtoneuler" )
   ,jacobiansSINTERN( boost::bind(&DynamicPinocchio::computeJacobians,this,_1, _2),
-                     jointPositionSIN<<freeFlyerPositionSIN,
+                     pinocchioPosSINTERN,
                      "sotDynamic("+name+")::intern(dummy)::computeJacobians" )
   ,forwardKinematicsSINTERN( boost::bind(&DynamicPinocchio::computeForwardKinematics,this,_1, _2),
-                             jointPositionSIN<<freeFlyerPositionSIN
-                             <<jointVelocitySIN<<freeFlyerVelocitySIN
-                             <<jointAccelerationSIN<<freeFlyerAccelerationSIN,
+                             pinocchioPosSINTERN<<pinocchioVelSINTERN<<pinocchioAccSINTERN,
                              "sotDynamic("+name+")::intern(dummy)::computeForwardKinematics" )
   ,ccrbaSINTERN( boost::bind(&DynamicPinocchio::computeCcrba,this,_1,_2),
-                 jointPositionSIN<<freeFlyerPositionSIN
-                 <<jointVelocitySIN<<freeFlyerVelocitySIN,
+                 pinocchioPosSINTERN<<pinocchioVelSINTERN,
                  "sotDynamic("+name+")::intern(dummy)::computeCcrba" )
   ,zmpSOUT( boost::bind(&DynamicPinocchio::computeZmp,this,_1,_2),
 	    newtonEulerSINTERN,
 	    "sotDynamic("+name+")::output(vector)::zmp" )
   ,JcomSOUT( boost::bind(&DynamicPinocchio::computeJcom,this,_1,_2),
-	     jointPositionSIN<<freeFlyerPositionSIN,
+             pinocchioPosSINTERN,
 	     "sotDynamic("+name+")::output(matrix)::Jcom" )
   ,comSOUT( boost::bind(&DynamicPinocchio::computeCom,this,_1,_2),
 	    forwardKinematicsSINTERN,
 	    "sotDynamic("+name+")::output(vector)::com" )
   ,inertiaSOUT( boost::bind(&DynamicPinocchio::computeInertia,this,_1,_2),
-		jointPositionSIN<<freeFlyerPositionSIN,
+                pinocchioPosSINTERN,
 		"sotDynamic("+name+")::output(matrix)::inertia" )
   ,footHeightSOUT( boost::bind(&DynamicPinocchio::computeFootHeight,this,_1,_2),
-		   jointPositionSIN<<freeFlyerPositionSIN,
+                   pinocchioPosSINTERN,
 		   "sotDynamic("+name+")::output(double)::footHeight" )
   ,upperJlSOUT( boost::bind(&DynamicPinocchio::getUpperPositionLimits,this,_1,_2),
 		sotNOSIGNAL,
@@ -114,8 +119,8 @@ DynamicPinocchio( const std::string & name)
 			ccrbaSINTERN,
 			"sotDynamic("+name+")::output(vector)::angularmomentum" )
   ,dynamicDriftSOUT( boost::bind(&DynamicPinocchio::computeTorqueDrift,this,_1,_2),
-		     newtonEulerSINTERN,
-		     "sotDynamic("+name+")::output(vector)::dynamicDrift" )
+                     newtonEulerSINTERN,
+                     "sotDynamic("+name+")::output(vector)::dynamicDrift" )
 {
 
   sotDEBUGIN(5);
@@ -255,7 +260,7 @@ DynamicPinocchio::setData(se3::Data* dataPtr){
 /*--------------------------------GETTERS-------------------------------------------*/
 
 dg::Vector& DynamicPinocchio::
-getLowerPositionLimits(dg::Vector& res, const int&)
+getLowerPositionLimits(dg::Vector& res, const int&) const
 {
   sotDEBUGIN(15);
   assert(m_model);
@@ -295,7 +300,7 @@ getLowerPositionLimits(dg::Vector& res, const int&)
 }
 
 dg::Vector& DynamicPinocchio::
-getUpperPositionLimits(dg::Vector& res, const int&)
+getUpperPositionLimits(dg::Vector& res, const int&) const
 {
   sotDEBUGIN(15);
   assert(m_model);
@@ -335,7 +340,7 @@ getUpperPositionLimits(dg::Vector& res, const int&)
 }
 
 dg::Vector& DynamicPinocchio::
-getUpperVelocityLimits(dg::Vector& res, const int&)
+getUpperVelocityLimits(dg::Vector& res, const int&) const
 {
   sotDEBUGIN(15);
   assert(m_model);
@@ -349,7 +354,7 @@ getUpperVelocityLimits(dg::Vector& res, const int&)
 }
 
 dg::Vector& DynamicPinocchio::
-getMaxEffortLimits(dg::Vector& res, const int&)
+getMaxEffortLimits(dg::Vector& res, const int&) const
 {
   sotDEBUGIN(15);
   assert(m_model);
@@ -363,11 +368,10 @@ getMaxEffortLimits(dg::Vector& res, const int&)
 
 
 /* ---------------- INTERNAL ------------------------------------------------ */
-dg::Vector DynamicPinocchio::getPinocchioPos(int time)
+dg::Vector& DynamicPinocchio::getPinocchioPos(dg::Vector& q,const int& time)
 {
   sotDEBUGIN(15);
   dg::Vector qJoints=jointPositionSIN.access(time);
-  dg::Vector q;
   if (!sphericalJoints.empty()){
     if( freeFlyerPositionSIN) {
       dg::Vector qFF=freeFlyerPositionSIN.access(time);
@@ -407,29 +411,36 @@ dg::Vector DynamicPinocchio::getPinocchioPos(int time)
   return q; 
 }
 
-Eigen::VectorXd DynamicPinocchio::getPinocchioVel(int time)
+dg::Vector& DynamicPinocchio::getPinocchioVel(dg::Vector& v, const int& time)
 {
   const Eigen::VectorXd vJoints=jointVelocitySIN.access(time);
   if(freeFlyerVelocitySIN){
     const Eigen::VectorXd vFF=freeFlyerVelocitySIN.access(time);
-    Eigen::VectorXd v(vJoints.size() + vFF.size());
+    if(v.size() != vJoints.size() + vFF.size())
+      v.resize(vJoints.size() + vFF.size());
     v << vFF,vJoints;
     return v;
   }
-  else 
-    return vJoints;
+  else { 
+    v = vJoints;
+    return v;
+  }
 }
 
-Eigen::VectorXd DynamicPinocchio::getPinocchioAcc(int time)
+dg::Vector& DynamicPinocchio::getPinocchioAcc(dg::Vector& a, const int& time)
 {
   const Eigen::VectorXd aJoints=jointAccelerationSIN.access(time);
   if(freeFlyerAccelerationSIN){
     const Eigen::VectorXd aFF=freeFlyerAccelerationSIN.access(time);
-    Eigen::VectorXd a(aJoints.size() + aFF.size());
+    if (a.size() !=aJoints.size() + aFF.size())
+      a.resize(aJoints.size() + aFF.size());
     a << aFF,aJoints;
     return a;
   }
-  else return aJoints;
+  else {
+    a = aJoints;
+    return a;
+  }
 }
 
 /* --- SIGNAL ACTIVATION ---------------------------------------------------- */
@@ -665,7 +676,7 @@ destroyAccelerationSignal( const std::string& signame )
 
 /* --------------------- COMPUTE ------------------------------------------------- */
 
-dg::Vector& DynamicPinocchio::computeZmp( dg::Vector& res,int time )
+dg::Vector& DynamicPinocchio::computeZmp( dg::Vector& res,const int& time )
 {
     //TODO: To be verified
     sotDEBUGIN(25);
@@ -674,9 +685,9 @@ dg::Vector& DynamicPinocchio::computeZmp( dg::Vector& res,int time )
         res.resize(3);
     newtonEulerSINTERN(time);
 
-    se3::Force ftau = m_data->oMi[1].act(m_data->f[1]);
-    se3::Force::Vector3 tau = ftau.angular();
-    se3::Force::Vector3 f = ftau.linear();
+    const se3::Force& ftau = m_data->oMi[1].act(m_data->f[1]);
+    const se3::Force::Vector3& tau = ftau.angular();
+    const se3::Force::Vector3& f = ftau.linear();
     res(0) = -tau[1]/f[2];
     res(1) = tau[0]/f[2];
     res(2) = 0;
@@ -690,37 +701,37 @@ dg::Vector& DynamicPinocchio::computeZmp( dg::Vector& res,int time )
 
 
 //Updates the jacobian matrix in m_data
-int& DynamicPinocchio::computeJacobians(int& dummy, int time) {
+int& DynamicPinocchio::computeJacobians(int& dummy, const int& time) {
   sotDEBUGIN(25);
-  se3::computeJacobians(*m_model,*m_data, this->getPinocchioPos(time));
+  const Eigen::VectorXd& q = pinocchioPosSINTERN.access(time);
+  se3::computeJacobians(*m_model,*m_data, q);
   sotDEBUG(25)<<"Jacobians updated"<<std::endl;
   sotDEBUGOUT(25);
   return dummy;
 }
-
-int& DynamicPinocchio::computeForwardKinematics(int& dummy, int time) {
+int& DynamicPinocchio::computeForwardKinematics(int& dummy, const int& time)  {
   sotDEBUGIN(25);
-  se3::forwardKinematics(*m_model, *m_data,
-                         this->getPinocchioPos(time),
-                         this->getPinocchioVel(time),
-                         this->getPinocchioAcc(time));
+  const Eigen::VectorXd& q = pinocchioPosSINTERN.access(time);
+  const Eigen::VectorXd& v = pinocchioVelSINTERN.access(time);
+  const Eigen::VectorXd& a = pinocchioAccSINTERN.access(time);
+  se3::forwardKinematics(*m_model, *m_data, q, v, a);
   sotDEBUG(25)<<"Kinematics updated"<<std::endl;
   sotDEBUGOUT(25);
   return dummy;
 }
 
-int& DynamicPinocchio::computeCcrba(int& dummy, int time) {
+int& DynamicPinocchio::computeCcrba(int& dummy, const int& time) {
   sotDEBUGIN(25);
-  se3::ccrba(*m_model,*m_data,
-             this->getPinocchioPos(time),
-             this->getPinocchioVel(time));
+  const Eigen::VectorXd& q = pinocchioPosSINTERN.access(time);
+  const Eigen::VectorXd& v = pinocchioVelSINTERN.access(time);
+  se3::ccrba(*m_model,*m_data, q, v);
   sotDEBUG(25)<<"Inertia and Momentum updated"<<std::endl;
   sotDEBUGOUT(25);
   return dummy;
 }
 
 dg::Matrix& DynamicPinocchio::
-computeGenericJacobian(bool isFrame, int jointId, dg::Matrix& res,int time )
+computeGenericJacobian(const bool isFrame, const int jointId, dg::Matrix& res,const int& time )
 {
   sotDEBUGIN(25);
   assert(m_model);
@@ -743,7 +754,7 @@ computeGenericJacobian(bool isFrame, int jointId, dg::Matrix& res,int time )
 }
 
 dg::Matrix& DynamicPinocchio::
-computeGenericEndeffJacobian(bool isFrame, int jointId,dg::Matrix& res,int time )
+computeGenericEndeffJacobian(const bool isFrame, const int jointId,dg::Matrix& res,const int& time )
 {
   sotDEBUGIN(25);
   assert(m_model);
@@ -776,7 +787,7 @@ computeGenericEndeffJacobian(bool isFrame, int jointId,dg::Matrix& res,int time
 }
 
 MatrixHomogeneous& DynamicPinocchio::
-computeGenericPosition(bool isFrame, int jointId, MatrixHomogeneous& res, int time)
+computeGenericPosition(const bool isFrame, const int jointId, MatrixHomogeneous& res, const int& time) 
 {
   sotDEBUGIN(25);
   assert(m_data);
@@ -797,7 +808,7 @@ computeGenericPosition(bool isFrame, int jointId, MatrixHomogeneous& res, int ti
 }
 
 dg::Vector& DynamicPinocchio::
-computeGenericVelocity( int jointId, dg::Vector& res,int time )
+computeGenericVelocity( const int jointId, dg::Vector& res,const int& time ) 
 {
   sotDEBUGIN(25);
   assert(m_data);
@@ -810,7 +821,7 @@ computeGenericVelocity( int jointId, dg::Vector& res,int time )
 }
 
 dg::Vector& DynamicPinocchio::
-computeGenericAcceleration( int jointId ,dg::Vector& res,int time )
+computeGenericAcceleration( const int jointId ,dg::Vector& res,const int& time )
 {
   sotDEBUGIN(25);
   assert(m_data);
@@ -823,15 +834,14 @@ computeGenericAcceleration( int jointId ,dg::Vector& res,int time )
 }
 
 int& DynamicPinocchio::
-computeNewtonEuler( int& dummy,int time )
+computeNewtonEuler(int& dummy,const int& time )
 {
   sotDEBUGIN(15);
   assert(m_model);
   assert(m_data);
-
-  const Eigen::VectorXd& q=getPinocchioPos(time);
-  const Eigen::VectorXd& v=getPinocchioVel(time);
-  const Eigen::VectorXd& a=getPinocchioAcc(time);
+  const Eigen::VectorXd& q = pinocchioPosSINTERN.access(time);
+  const Eigen::VectorXd& v = pinocchioVelSINTERN.access(time);
+  const Eigen::VectorXd& a = pinocchioAccSINTERN.access(time);
   se3::rnea(*m_model,*m_data,q,v,a);
   
   sotDEBUG(1)<< "pos = " <<q <<std::endl;
@@ -843,12 +853,12 @@ computeNewtonEuler( int& dummy,int time )
 }
 
 dg::Matrix& DynamicPinocchio::
-computeJcom( dg::Matrix& Jcom,int time )
+computeJcom( dg::Matrix& Jcom,const int& time ) 
 {
   
   sotDEBUGIN(25);
-  const Eigen::VectorXd& q=getPinocchioPos(time);
 
+  const Eigen::VectorXd& q = pinocchioPosSINTERN.access(time);
   Jcom = se3::jacobianCenterOfMass(*m_model, *m_data,
 				   q, false);
   sotDEBUGOUT(25);
@@ -856,11 +866,11 @@ computeJcom( dg::Matrix& Jcom,int time )
 }
 
 dg::Vector& DynamicPinocchio::
-computeCom( dg::Vector& com,int time )
+computeCom( dg::Vector& com,const int& time ) 
 {
 
   sotDEBUGIN(25);
-  const Eigen::VectorXd& q=getPinocchioPos(time);
+  const Eigen::VectorXd& q = pinocchioPosSINTERN.access(time);
   forwardKinematicsSINTERN(time);
   com = se3::centerOfMass(*m_model,*m_data,q,false,false);
   sotDEBUGOUT(25);
@@ -868,11 +878,11 @@ computeCom( dg::Vector& com,int time )
 }
 
 dg::Matrix& DynamicPinocchio::
-computeInertia( dg::Matrix& res,int time )
+computeInertia( dg::Matrix& res,const int& time ) 
 {
     sotDEBUGIN(25);
-    res = se3::crba(*m_model,
-                    *m_data,this->getPinocchioPos(time)); 
+  const Eigen::VectorXd& q = pinocchioPosSINTERN.access(time);
+    res = se3::crba(*m_model, *m_data, q); 
     res.triangularView<Eigen::StrictlyLower>() =
       res.transpose().triangularView<Eigen::StrictlyLower>();
     sotDEBUGOUT(25);
@@ -880,7 +890,7 @@ computeInertia( dg::Matrix& res,int time )
 }
 
 dg::Matrix& DynamicPinocchio::
-computeInertiaReal( dg::Matrix& res,int time )
+computeInertiaReal( dg::Matrix& res,const int& time ) 
 {
   sotDEBUGIN(25);
 
@@ -897,7 +907,7 @@ computeInertiaReal( dg::Matrix& res,int time )
 }
 
 double& DynamicPinocchio::
-computeFootHeight (double &res , int time)
+computeFootHeight (double &res , const int& time)
 {
   //Ankle position in local foot frame
   //TODO: Confirm that it is in the foot frame
@@ -915,7 +925,7 @@ computeFootHeight (double &res , int time)
 }
 
 dg::Vector& DynamicPinocchio::
-computeTorqueDrift( dg::Vector& tauDrift,const int  &time )
+computeTorqueDrift( dg::Vector& tauDrift,const int& time )
 {
   sotDEBUGIN(25);
   newtonEulerSINTERN(time);
@@ -925,7 +935,7 @@ computeTorqueDrift( dg::Vector& tauDrift,const int  &time )
 }
 
 dg::Vector& DynamicPinocchio::
-computeMomenta(dg::Vector & Momenta, int time)
+computeMomenta(dg::Vector & Momenta, const int& time)
 {
   sotDEBUGIN(25);
   ccrbaSINTERN(time);
@@ -939,7 +949,7 @@ computeMomenta(dg::Vector & Momenta, int time)
 }
 
 dg::Vector& DynamicPinocchio::
-computeAngularMomentum(dg::Vector & Momenta, int time)
+computeAngularMomentum(dg::Vector & Momenta, const int& time)
 {
   sotDEBUGIN(25);
   ccrbaSINTERN(time);