diff --git a/src/implementation/solvers/pde/tnlPDESolver_impl.h b/src/implementation/solvers/pde/tnlPDESolver_impl.h
index 7e5917d3a7a5e091d5d7baf4ef38c1a41c426dd0..54d11bf02d306bb828ce791676d354593e52823c 100644
--- a/src/implementation/solvers/pde/tnlPDESolver_impl.h
+++ b/src/implementation/solvers/pde/tnlPDESolver_impl.h
@@ -90,11 +90,16 @@ bool tnlPDESolver< Problem, TimeStepper > :: solve()
    IndexType step( 0 );
    IndexType allSteps = ceil( this -> finalTime / this -> snapshotTau );
    this -> timeStepper -> setProblem( * ( this -> problem ) );
+   if( ! this -> problem -> makeSnapshot( t, step ) )
+   {
+      cerr << "Making the snapshot failed." << endl;
+      return false;
+   }
    while( step < allSteps )
    {
       RealType tau = Min( this -> snapshotTau,
                           this -> finalTime - t );
-      this -> timeStepper -> setTau( tau );
+      //this -> timeStepper -> setTau( tau );
       if( ! this -> timeStepper -> solve( t, t + tau ) )
          return false;
       step ++;