diff --git a/extensions/openpower-pels/data_interface.hpp b/extensions/openpower-pels/data_interface.hpp
index 41a6d86..29ba22e 100644
--- a/extensions/openpower-pels/data_interface.hpp
+++ b/extensions/openpower-pels/data_interface.hpp
@@ -690,7 +690,7 @@
 {
   public:
     DataInterface() = delete;
-    ~DataInterface() = default;
+    ~DataInterface() override = default;
     DataInterface(const DataInterface&) = delete;
     DataInterface& operator=(const DataInterface&) = delete;
     DataInterface(DataInterface&&) = delete;
diff --git a/extensions/openpower-pels/dbus_watcher.hpp b/extensions/openpower-pels/dbus_watcher.hpp
index 3917e19..5919610 100644
--- a/extensions/openpower-pels/dbus_watcher.hpp
+++ b/extensions/openpower-pels/dbus_watcher.hpp
@@ -73,7 +73,7 @@
 {
   public:
     PropertyWatcher() = delete;
-    ~PropertyWatcher() = default;
+    ~PropertyWatcher() override = default;
     PropertyWatcher(const PropertyWatcher&) = delete;
     PropertyWatcher& operator=(const PropertyWatcher&) = delete;
     PropertyWatcher(PropertyWatcher&&) = delete;
@@ -254,7 +254,7 @@
 {
   public:
     InterfaceWatcher() = delete;
-    ~InterfaceWatcher() = default;
+    ~InterfaceWatcher() override = default;
     InterfaceWatcher(const InterfaceWatcher&) = delete;
     InterfaceWatcher& operator=(const InterfaceWatcher&) = delete;
     InterfaceWatcher(InterfaceWatcher&&) = delete;
diff --git a/extensions/openpower-pels/extended_user_data.hpp b/extensions/openpower-pels/extended_user_data.hpp
index 086dc9b..8822e7b 100644
--- a/extensions/openpower-pels/extended_user_data.hpp
+++ b/extensions/openpower-pels/extended_user_data.hpp
@@ -24,7 +24,7 @@
 {
   public:
     ExtendedUserData() = delete;
-    ~ExtendedUserData() = default;
+    ~ExtendedUserData() override = default;
     ExtendedUserData(const ExtendedUserData&) = default;
     ExtendedUserData& operator=(const ExtendedUserData&) = default;
     ExtendedUserData(ExtendedUserData&&) = default;
diff --git a/extensions/openpower-pels/extended_user_header.hpp b/extensions/openpower-pels/extended_user_header.hpp
index 40da0b6..e964bd4 100644
--- a/extensions/openpower-pels/extended_user_header.hpp
+++ b/extensions/openpower-pels/extended_user_header.hpp
@@ -31,7 +31,7 @@
 {
   public:
     ExtendedUserHeader() = delete;
-    ~ExtendedUserHeader() = default;
+    ~ExtendedUserHeader() override = default;
     ExtendedUserHeader(const ExtendedUserHeader&) = default;
     ExtendedUserHeader& operator=(const ExtendedUserHeader&) = default;
     ExtendedUserHeader(ExtendedUserHeader&&) = default;
diff --git a/extensions/openpower-pels/failing_mtms.hpp b/extensions/openpower-pels/failing_mtms.hpp
index b14f1ef..7f728c3 100644
--- a/extensions/openpower-pels/failing_mtms.hpp
+++ b/extensions/openpower-pels/failing_mtms.hpp
@@ -21,7 +21,7 @@
 {
   public:
     FailingMTMS() = delete;
-    ~FailingMTMS() = default;
+    ~FailingMTMS() override = default;
     FailingMTMS(const FailingMTMS&) = default;
     FailingMTMS& operator=(const FailingMTMS&) = default;
     FailingMTMS(FailingMTMS&&) = default;
diff --git a/extensions/openpower-pels/generic.hpp b/extensions/openpower-pels/generic.hpp
index ff85b03..a03b233 100644
--- a/extensions/openpower-pels/generic.hpp
+++ b/extensions/openpower-pels/generic.hpp
@@ -20,7 +20,7 @@
 {
   public:
     Generic() = delete;
-    ~Generic() = default;
+    ~Generic() override = default;
     Generic(const Generic&) = default;
     Generic& operator=(const Generic&) = default;
     Generic(Generic&&) = default;
diff --git a/extensions/openpower-pels/journal.hpp b/extensions/openpower-pels/journal.hpp
index 620ce50..2707c44 100644
--- a/extensions/openpower-pels/journal.hpp
+++ b/extensions/openpower-pels/journal.hpp
@@ -48,7 +48,7 @@
 {
   public:
     Journal() = default;
-    ~Journal() = default;
+    ~Journal() override = default;
     Journal(const Journal&) = default;
     Journal& operator=(const Journal&) = default;
     Journal(Journal&&) = default;
diff --git a/extensions/openpower-pels/pldm_interface.hpp b/extensions/openpower-pels/pldm_interface.hpp
index 30ff749..c350ede 100644
--- a/extensions/openpower-pels/pldm_interface.hpp
+++ b/extensions/openpower-pels/pldm_interface.hpp
@@ -54,7 +54,7 @@
     /**
      * @brief Destructor
      */
-    ~PLDMInterface();
+    ~PLDMInterface() override;
 
     /**
      * @brief Kicks off the send of the 'new file available' command
diff --git a/extensions/openpower-pels/private_header.hpp b/extensions/openpower-pels/private_header.hpp
index 224142c..dbdaca6 100644
--- a/extensions/openpower-pels/private_header.hpp
+++ b/extensions/openpower-pels/private_header.hpp
@@ -38,7 +38,7 @@
 {
   public:
     PrivateHeader() = delete;
-    ~PrivateHeader() = default;
+    ~PrivateHeader() override = default;
     PrivateHeader(const PrivateHeader&) = default;
     PrivateHeader& operator=(const PrivateHeader&) = default;
     PrivateHeader(PrivateHeader&&) = default;
diff --git a/extensions/openpower-pels/service_indicators.hpp b/extensions/openpower-pels/service_indicators.hpp
index 5375e13..13e6355 100644
--- a/extensions/openpower-pels/service_indicators.hpp
+++ b/extensions/openpower-pels/service_indicators.hpp
@@ -57,7 +57,7 @@
 {
   public:
     LightPath() = delete;
-    virtual ~LightPath() = default;
+    ~LightPath() override = default;
     LightPath(const LightPath&) = default;
     LightPath& operator=(const LightPath&) = delete;
     LightPath(LightPath&&) = delete;
diff --git a/extensions/openpower-pels/src.hpp b/extensions/openpower-pels/src.hpp
index fa3a952..781274e 100644
--- a/extensions/openpower-pels/src.hpp
+++ b/extensions/openpower-pels/src.hpp
@@ -71,7 +71,7 @@
     };
 
     SRC() = delete;
-    ~SRC() = default;
+    ~SRC() override = default;
     SRC(const SRC&) = delete;
     SRC& operator=(const SRC&) = delete;
     SRC(SRC&&) = delete;
diff --git a/extensions/openpower-pels/user_data.hpp b/extensions/openpower-pels/user_data.hpp
index 841596c..142a502 100644
--- a/extensions/openpower-pels/user_data.hpp
+++ b/extensions/openpower-pels/user_data.hpp
@@ -23,7 +23,7 @@
 {
   public:
     UserData() = delete;
-    ~UserData() = default;
+    ~UserData() override = default;
     UserData(const UserData&) = default;
     UserData& operator=(const UserData&) = default;
     UserData(UserData&&) = default;
diff --git a/extensions/openpower-pels/user_header.hpp b/extensions/openpower-pels/user_header.hpp
index 4d3e7cf..d212831 100644
--- a/extensions/openpower-pels/user_header.hpp
+++ b/extensions/openpower-pels/user_header.hpp
@@ -31,7 +31,7 @@
 {
   public:
     UserHeader() = delete;
-    ~UserHeader() = default;
+    ~UserHeader() override = default;
     UserHeader(const UserHeader&) = default;
     UserHeader& operator=(const UserHeader&) = default;
     UserHeader(UserHeader&&) = default;
