diff --git a/src/FootTrajectoryGeneration/OnLineFootTrajectoryGeneration.cpp b/src/FootTrajectoryGeneration/OnLineFootTrajectoryGeneration.cpp
index fc8959dc0a067a7a31fef53c3473cc3d5829ab22..40aeea2c0301c888b0a77017a49d49a89b2a14b7 100644
--- a/src/FootTrajectoryGeneration/OnLineFootTrajectoryGeneration.cpp
+++ b/src/FootTrajectoryGeneration/OnLineFootTrajectoryGeneration.cpp
@@ -336,17 +336,6 @@ void
       FinalLeftFootTraj_deq[CurrentIndex+k].time =
           FinalRightFootTraj_deq[CurrentIndex+k].time = Time+k*m_SamplingPeriod;
     }
-
-    if(CurrentSupport.Foot == LEFT)
-    {
-      LastSFP = &(FinalRightFootTraj_deq[(unsigned int)(CurrentIndex+QP_T_/m_SamplingPeriod)]);
-    }
-    else
-    {
-      LastSFP = &(FinalLeftFootTraj_deq[(unsigned int)(CurrentIndex+QP_T_/m_SamplingPeriod)]);
-    }
-    cout << "NewSFP->ddtheta = " << LastSFP->ddtheta << endl  ;
-
   }
   else if (CurrentSupport.Phase == DS || Time+3.0/2.0*QP_T_ > CurrentSupport.TimeLimit)
   {
diff --git a/src/ZMPRefTrajectoryGeneration/ZMPVelocityReferencedQP.cpp b/src/ZMPRefTrajectoryGeneration/ZMPVelocityReferencedQP.cpp
index c5a3455a399e32423547dcd222a10eeaa609ce99..8c2d83c1d5763bec19920f0199c88d12d40599c7 100644
--- a/src/ZMPRefTrajectoryGeneration/ZMPVelocityReferencedQP.cpp
+++ b/src/ZMPRefTrajectoryGeneration/ZMPVelocityReferencedQP.cpp
@@ -203,9 +203,6 @@ Solution_(),OFTG_DF_(0),OFTG_control_(0)
   PreviousConfiguration_ = aHS->currentConfiguration() ;
   PreviousVelocity_ = aHS->currentVelocity();
   PreviousAcceleration_ = aHS->currentAcceleration();
-  PreviousConfigurationControl_ = aHS->currentConfiguration() ;
-  PreviousVelocityControl_ = aHS->currentVelocity();
-  PreviousAccelerationControl_ = aHS->currentAcceleration();
 
   ComAndFootRealizationByGeometry_->SetPreviousConfigurationStage0(PreviousConfiguration_);
   ComAndFootRealizationByGeometry_->SetPreviousVelocityStage0(PreviousVelocity_);
@@ -243,9 +240,9 @@ Solution_(),OFTG_DF_(0),OFTG_control_(0)
   VelocityTraj_.resize( QP_N_ * NbSampleInterpolation_, aHS->currentVelocity() );
   AccelerationTraj_.resize( QP_N_ * NbSampleInterpolation_, aHS->currentAcceleration() );
 
-  ConfigurationTrajControl_.resize( NbSampleControl_, aHS->currentConfiguration() );
-  VelocityTrajControl_.resize( NbSampleControl_, aHS->currentConfiguration() );
-  AccelerationTrajControl_.resize( NbSampleControl_, aHS->currentConfiguration() );
+  tmpConfigurationTraj_.resize(QP_N_ * NbSampleInterpolation_) ;
+  tmpVelocityTraj_.resize(QP_N_ * NbSampleInterpolation_) ;
+  tmpAccelerationTraj_.resize(QP_N_ * NbSampleInterpolation_) ;
 
   DeltaZMPMBPositions_.resize ( QP_N_ * NbSampleInterpolation_ );
   ZMPMBTraj_deq_.resize( QP_N_ * NbSampleInterpolation_, vector<double>(2) );
@@ -595,7 +592,7 @@ void
     ControlInterpolation( FinalCOMTraj_deq, FinalZMPTraj_deq, FinalLeftFootTraj_deq,
                           FinalRightFootTraj_deq, time) ;
 
-    DynamicFilterInterpolation( time) ;
+    DynamicFilterInterpolation(time) ;
     CallToComAndFootRealization(time);
 
 
@@ -1198,11 +1195,31 @@ void ZMPVelocityReferencedQP::CallToComAndFootRealization(double time)
                                                                               it, stage0);
   }
 
+  tmpConfigurationTraj_[0] = ( ConfigurationTraj_[1]+ConfigurationTraj_[0]+PreviousConfiguration_ )/3;
+  tmpVelocityTraj_[0]      = ( VelocityTraj_[1]+VelocityTraj_[0]+PreviousVelocity_ )/3;
+  tmpAccelerationTraj_[0]  = ( AccelerationTraj_[1]+AccelerationTraj_[0]+PreviousAcceleration_ )/3;
+
   // saving the precedent state of the next QP_ computation
   PreviousConfiguration_ = ConfigurationTraj_[NbSampleInterpolation_-1] ;
   PreviousVelocity_ = VelocityTraj_[NbSampleInterpolation_-1] ;
   PreviousAcceleration_ = AccelerationTraj_[NbSampleInterpolation_-1] ;
 
+  for (unsigned int i = 1 ; i < N-1 ; ++i )
+  {
+    tmpConfigurationTraj_[i] = ( ConfigurationTraj_[i+1] + ConfigurationTraj_[i] + ConfigurationTraj_[i-1] )/3;
+    tmpVelocityTraj_[i] = ( VelocityTraj_[i+1] + VelocityTraj_[i] + VelocityTraj_[i-1] )/3;
+    tmpAccelerationTraj_[i] = ( AccelerationTraj_[i+1] + AccelerationTraj_[i] + AccelerationTraj_[i-1] )/3;
+  }
+
+  tmpConfigurationTraj_[N-1] = ( ConfigurationTraj_[N-1]+ConfigurationTraj_[N-2] )*0.5;
+  tmpVelocityTraj_[N-1]      = ( VelocityTraj_[N-1]+VelocityTraj_[N-2] )*0.5;
+  tmpAccelerationTraj_[N-1]  = ( AccelerationTraj_[N-1]+AccelerationTraj_[N-2] )*0.5;
+
+
+  ConfigurationTraj_ = tmpConfigurationTraj_ ;
+  VelocityTraj_ = tmpVelocityTraj_ ;
+  AccelerationTraj_ = tmpAccelerationTraj_ ;
+
   /// \brief Debug Purpose
   /// --------------------
   ofstream aof;
diff --git a/src/ZMPRefTrajectoryGeneration/ZMPVelocityReferencedQP.hh b/src/ZMPRefTrajectoryGeneration/ZMPVelocityReferencedQP.hh
index d67ab3f99551326906ebcdcb135ef8605c7aa448..fb16682d1664f1074d4de4e1e77165809a761594 100644
--- a/src/ZMPRefTrajectoryGeneration/ZMPVelocityReferencedQP.hh
+++ b/src/ZMPRefTrajectoryGeneration/ZMPVelocityReferencedQP.hh
@@ -287,18 +287,18 @@ namespace PatternGeneratorJRL
     unsigned NbSampleInterpolation_ ;
 
     /// \brief Buffers for the CoM an Feet computation, i.e. the simplify inverse kinematics.
-    vector <MAL_VECTOR_TYPE(double)> ConfigurationTraj_ ;
-    vector <MAL_VECTOR_TYPE(double)> VelocityTraj_ ;
-    vector <MAL_VECTOR_TYPE(double)> AccelerationTraj_ ;
-    vector <MAL_VECTOR_TYPE(double)> ConfigurationTrajControl_ ;
-    vector <MAL_VECTOR_TYPE(double)> VelocityTrajControl_ ;
-    vector <MAL_VECTOR_TYPE(double)> AccelerationTrajControl_ ;
+    std::vector <MAL_VECTOR_TYPE(double)> ConfigurationTraj_ ;
+    std::vector <MAL_VECTOR_TYPE(double)> VelocityTraj_ ;
+    std::vector <MAL_VECTOR_TYPE(double)> AccelerationTraj_ ;
     MAL_VECTOR_TYPE(double) PreviousConfiguration_ ;
     MAL_VECTOR_TYPE(double) PreviousVelocity_ ;
     MAL_VECTOR_TYPE(double) PreviousAcceleration_ ;
-    MAL_VECTOR_TYPE(double) PreviousConfigurationControl_ ;
-    MAL_VECTOR_TYPE(double) PreviousVelocityControl_ ;
-    MAL_VECTOR_TYPE(double) PreviousAccelerationControl_ ;
+
+    // 2 point filter
+    vector <MAL_VECTOR_TYPE(double)> tmpConfigurationTraj_ ;
+    vector <MAL_VECTOR_TYPE(double)> tmpVelocityTraj_ ;
+    vector <MAL_VECTOR_TYPE(double)> tmpAccelerationTraj_ ;
+
 
     /// \brief Buffers for the uotput of the Kajita preview control algorithm.
     std::deque<COMState> ComStateBuffer_ ;
diff --git a/tests/TestHerdt2010DynamicFilter.cpp b/tests/TestHerdt2010DynamicFilter.cpp
index eeaa3fe304a9518d2148981d26186248f7904f80..7e0c82a8d8d59b3ba353147fcd54d417b44a5136 100644
--- a/tests/TestHerdt2010DynamicFilter.cpp
+++ b/tests/TestHerdt2010DynamicFilter.cpp
@@ -282,7 +282,7 @@ protected:
 	      << filterprecision(m_OneStep.finalCOMPosition.x[0] ) << " "                   // 2
 	      << filterprecision(m_OneStep.finalCOMPosition.y[0] ) << " "                   // 3
 	      << filterprecision(m_OneStep.finalCOMPosition.z[0] ) << " "                   // 4
-	      << filterprecision(m_OneStep.finalCOMPosition.yaw[0] ) << " "                    // 5
+        << filterprecision(m_OneStep.finalCOMPosition.yaw[0] ) << " "                 // 5
 	      << filterprecision(m_OneStep.finalCOMPosition.x[1] ) << " "                   // 6
 	      << filterprecision(m_OneStep.finalCOMPosition.y[1] ) << " "                   // 7
 	      << filterprecision(m_OneStep.finalCOMPosition.z[1] ) << " "                   // 8
@@ -297,7 +297,7 @@ protected:
 	      << filterprecision(m_OneStep.LeftFootPosition.ddx  ) << " "                   // 17
 	      << filterprecision(m_OneStep.LeftFootPosition.ddy  ) << " "                   // 18
 	      << filterprecision(m_OneStep.LeftFootPosition.ddz  ) << " "                   // 19
-	      << filterprecision(m_OneStep.LeftFootPosition.theta*M_PI/180 ) << " "     // 20
+        << filterprecision(m_OneStep.LeftFootPosition.theta*M_PI/180 ) << " "         // 20
 	      << filterprecision(m_OneStep.LeftFootPosition.omega  ) << " "                 // 21
 	      << filterprecision(m_OneStep.LeftFootPosition.omega2  ) << " "                // 22
 	      << filterprecision(m_OneStep.RightFootPosition.x ) << " "                     // 23