diff --git a/src/implementation/mesh/tnlGrid2D_impl.h b/src/implementation/mesh/tnlGrid2D_impl.h
index 497793165958aeaa10258a45bdd14b254765b1db..f626a05f1e364d5d5cf9a598348c31b4bbfcfbac 100644
--- a/src/implementation/mesh/tnlGrid2D_impl.h
+++ b/src/implementation/mesh/tnlGrid2D_impl.h
@@ -250,7 +250,7 @@ bool tnlGrid< 2, Real, Device, Index> :: write( const MeshFunction& function,
          for( IndexType i = 0; i < getDimensions(). x(); i++ )
          {
             const RealType x = this -> getLowerCorner(). x() + i * hx;
-            const RealType y = this -> getLowerCorner(). y() + i * hy;
+            const RealType y = this -> getLowerCorner(). y() + j * hy;
             file << x << " " << " " << y << " " << function[ this -> getNodeIndex( j, i ) ] << endl;
          }
          file << endl;
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 ++;