diff --git a/GeoLib/GEOObjects.h b/GeoLib/GEOObjects.h
index d877b7d9dc90c32d9174c4315d8636f22bc25c54..841739ae072a31d33664bb4d146c563f21118018 100644
--- a/GeoLib/GEOObjects.h
+++ b/GeoLib/GEOObjects.h
@@ -75,6 +75,7 @@ public:
         virtual void addSurfaceVec(std::string const&){}
         virtual void appendSurfaceVec(std::string const&){}
         virtual void removeSurfaceVec(std::string const&){}
+        virtual ~Callbacks() = default;
     };
 
 public:
diff --git a/MeshLib/MeshGenerators/LayeredMeshGenerator.h b/MeshLib/MeshGenerators/LayeredMeshGenerator.h
index d0f43e9ed67f24d353146144d4e9ce9dc2c2924c..0804f7b2e941d1641f00c9337dcc2f9a0770d398 100644
--- a/MeshLib/MeshGenerators/LayeredMeshGenerator.h
+++ b/MeshLib/MeshGenerators/LayeredMeshGenerator.h
@@ -67,7 +67,7 @@ public:
 
 protected:
     LayeredMeshGenerator();
-    ~LayeredMeshGenerator() {}
+    virtual ~LayeredMeshGenerator() = default;
 
     /// Adds another layer to the subsurface mesh
     virtual void addLayerToMesh(MeshLib::Mesh const& mesh_layer, unsigned layer_id, GeoLib::Raster const& raster) = 0;
diff --git a/NumLib/ODESolver/ConvergenceCriterion.h b/NumLib/ODESolver/ConvergenceCriterion.h
index ecd37730ba50a7a1d1346c2e0f0688ce34f764bd..39c8060036bcf55677ec493db799f0d749a0eb7d 100644
--- a/NumLib/ODESolver/ConvergenceCriterion.h
+++ b/NumLib/ODESolver/ConvergenceCriterion.h
@@ -73,7 +73,7 @@ public:
     //! Tell if the convergence criterion is satisfied.
     virtual bool isSatisfied() const = 0;
 
-    ~ConvergenceCriterion() = default;
+    virtual ~ConvergenceCriterion() = default;
 };
 
 //! Creates a convergence criterion from the given configuration.