diff --git a/host-bmc/dbus_to_terminus_effecters.cpp b/host-bmc/dbus_to_terminus_effecters.cpp
index f11dc2f..52268ab 100644
--- a/host-bmc/dbus_to_terminus_effecters.cpp
+++ b/host-bmc/dbus_to_terminus_effecters.cpp
@@ -375,7 +375,7 @@
         return;
     }
 
-    /* Bypass the setting when the current value is NA or settting value is NA*/
+    /* Bypass the setting when the current value is NA or setting value is NA */
     if (std::isnan(propValues.propertyValue) || std::isnan(val))
     {
         return;
diff --git a/host-bmc/dbus_to_terminus_effecters.hpp b/host-bmc/dbus_to_terminus_effecters.hpp
index 8e4357e..038f869 100644
--- a/host-bmc/dbus_to_terminus_effecters.hpp
+++ b/host-bmc/dbus_to_terminus_effecters.hpp
@@ -213,7 +213,7 @@
         const std::string& objectPath, const std::string& interface,
         size_t effecterInfoIndex, size_t dbusInfoIndex, uint16_t effecterId);
 
-    /* @brief Adjust the nummeric effecter value base on the effecter
+    /* @brief Adjust the numeric effecter value base on the effecter
      *        configurations
      *
      * @param[in] value - Raw value
diff --git a/oem/ibm/libpldmresponder/utils.cpp b/oem/ibm/libpldmresponder/utils.cpp
index 9fec1a1..6eb26a5 100644
--- a/oem/ibm/libpldmresponder/utils.cpp
+++ b/oem/ibm/libpldmresponder/utils.cpp
@@ -241,7 +241,7 @@
                     searchpath, 0 /* depth */, cpuInterface);
                 for (const auto& [objectPath, serviceMap] : response)
                 {
-                    // find the object path with first occurance of coreX
+                    // find the object path with first occurrence of coreX
                     if (objectPath.contains(grepWord))
                     {
                         pldm::utils::DBusMapping dbusMapping{
diff --git a/platform-mc/terminus.cpp b/platform-mc/terminus.cpp
index 575741a..c8cd91a 100644
--- a/platform-mc/terminus.cpp
+++ b/platform-mc/terminus.cpp
@@ -61,10 +61,10 @@
         [](const std::shared_ptr<EntityAuxiliaryNames>& entityAuxiliaryNames) {
             const auto& [key, entityNames] = *entityAuxiliaryNames;
             /**
-             * There is only one Overal system container entity in one terminus.
-             * The entity auxiliary name PDR of that terminus with the that type
-             *of containerID will include terminus name.
-             **/
+             * There is only one Overall system container entity in one
+             * terminus. The entity auxiliary name PDR of that terminus with the
+             * that type of containerID will include terminus name.
+             */
             return (
                 entityAuxiliaryNames &&
                 key.containerId == PLDM_PLATFORM_ENTITY_SYSTEM_CONTAINER_ID &&
diff --git a/platform-mc/test/platform_manager_test.cpp b/platform-mc/test/platform_manager_test.cpp
index 73baa1a..0d66a0b 100644
--- a/platform-mc/test/platform_manager_test.cpp
+++ b/platform-mc/test/platform_manager_test.cpp
@@ -170,7 +170,7 @@
             0x1,
             0x0,  // Entity instance number =1
             0,
-            0,    // Overal system
+            0,    // Overall system
             0,    // shared Name Count one name only
             01,   // nameStringCount
             0x65, 0x6e, 0x00,
@@ -329,7 +329,7 @@
             0x1,
             0x0,  // Entity instance number =1
             0,
-            0,    // Overal system
+            0,    // Overall system
             0,    // shared Name Count one name only
             01,   // nameStringCount
             0x65, 0x6e, 0x00,
diff --git a/platform-mc/test/sensor_manager_test.cpp b/platform-mc/test/sensor_manager_test.cpp
index 65505fb..59a120b 100644
--- a/platform-mc/test/sensor_manager_test.cpp
+++ b/platform-mc/test/sensor_manager_test.cpp
@@ -138,7 +138,7 @@
         0x1,
         0x0,  // Entity instance number =1
         0,
-        0,    // Overal system
+        0,    // Overall system
         0,    // shared Name Count one name only
         01,   // nameStringCount
         0x65, 0x6e, 0x00,
diff --git a/platform-mc/test/terminus_test.cpp b/platform-mc/test/terminus_test.cpp
index 0baa8b7..609deed 100644
--- a/platform-mc/test/terminus_test.cpp
+++ b/platform-mc/test/terminus_test.cpp
@@ -78,7 +78,7 @@
         0x1,
         0x0,  // Entity instance number =1
         0,
-        0,    // Overal system
+        0,    // Overall system
         0,    // shared Name Count one name only
         01,   // nameStringCount
         0x65, 0x6e, 0x00,
@@ -193,7 +193,7 @@
         0x1,
         0x0,  // Entity instance number =1
         0,
-        0,    // Overal system
+        0,    // Overall system
         0,    // shared Name Count one name only
         01,   // nameStringCount
         0x65, 0x6e, 0x00,
@@ -313,7 +313,7 @@
         0x1,
         0x0,  // Entity instance number =1
         0,
-        0,    // Overal system
+        0,    // Overall system
         0,    // shared Name Count one name only
         01,   // nameStringCount
         0x65, 0x6e, 0x00,
@@ -367,7 +367,7 @@
         0x1,
         0x0,  // Entity instance number =1
         0,
-        0,    // Overal system
+        0,    // Overall system
         0,    // shared Name Count one name only
         01,   // nameStringCount
         0x65, 0x6e, 0x00,
