diff --git a/src/TNL/Solvers/Linear/LinearSolver.h b/src/TNL/Solvers/Linear/LinearSolver.h
index d724fb8f4c18fc421cc792c4490ecbd32a173256..da7a75699af59c3bbe4e7d890c530cc4a5a84c7a 100644
--- a/src/TNL/Solvers/Linear/LinearSolver.h
+++ b/src/TNL/Solvers/Linear/LinearSolver.h
@@ -60,6 +60,8 @@ public:
 
    virtual bool solve( ConstVectorViewType b, VectorViewType x ) = 0;
 
+   virtual ~LinearSolver() {}
+
 protected:
    MatrixPointer matrix = nullptr;
    PreconditionerPointer preconditioner = nullptr;
diff --git a/src/TNL/Solvers/Linear/Preconditioners/Preconditioner.h b/src/TNL/Solvers/Linear/Preconditioners/Preconditioner.h
index 1213cd4109ea8a4434e3613b102fa9e66a375abf..bcbfaf8240ea6dbe3824ba2694502bf2841ddce2 100644
--- a/src/TNL/Solvers/Linear/Preconditioners/Preconditioner.h
+++ b/src/TNL/Solvers/Linear/Preconditioners/Preconditioner.h
@@ -52,6 +52,8 @@ public:
    {
       return String( "Preconditioner" );
    }
+
+   virtual ~Preconditioner() {}
 };
 
 } // namespace Preconditioners