diff --git a/NonLinearSolver/nlsolver/nonLinearMechSolver.cpp b/NonLinearSolver/nlsolver/nonLinearMechSolver.cpp
index 19e06024fc1aa35dd8383fe59167b234a7524fec..858844df3620bf67ea4e140f3a1d91ebd9c90fee 100644
--- a/NonLinearSolver/nlsolver/nonLinearMechSolver.cpp
+++ b/NonLinearSolver/nlsolver/nonLinearMechSolver.cpp
@@ -2013,7 +2013,7 @@ void nonLinearMechSolver::setTimeForLaw(const double t,const double dt)
   for(std::map<int,materialLaw*>::iterator it=maplaw.begin(); it!=maplaw.end();++it)
   {
     if (_microFlag){
-      double macroTime = _currentTime+ t*_timeStep;
+      double macroTime = _currentTime- (1-t)*_timeStep;
       double tstep = dt*_timeStep; // because
       it->second->setTime(macroTime,tstep);
     }