diff --git a/src/solvers/linear/krylov/tnlGMRESSolver_impl.h b/src/solvers/linear/krylov/tnlGMRESSolver_impl.h
index 8d738b1b74ac7a494c54a1a67d935a374087427b..770cb26b31f1e83db4d35df6ff57a37fadfa37ac 100644
--- a/src/solvers/linear/krylov/tnlGMRESSolver_impl.h
+++ b/src/solvers/linear/krylov/tnlGMRESSolver_impl.h
@@ -251,15 +251,14 @@ bool tnlGMRESSolver< Matrix, Preconditioner > :: solve( const Vector& b, Vector&
                              sn[ i ] );
 
          this->setResidue( fabs( s[ i + 1 ] ) / normb );
-         this->refreshSolverMonitor();
-
-         /*if( this->getResidue() < this->getConvergenceResidue() )
-         {
+         if( this->nextIteration() ) {
+            this->refreshSolverMonitor();
+         }
+         else {
             update( i, m, _H, _s, _v, x );
-            return true;
+            this->refreshSolverMonitor( true );
+            return this->checkConvergence();
          }
-         if( ! this->nextIteration() )
-            return false;*/
       }
       update( m - 1, m, _H, _s, _v, x );