diff --git a/apphandler.cpp b/apphandler.cpp
index 1655144..fbe474a 100644
--- a/apphandler.cpp
+++ b/apphandler.cpp
@@ -168,7 +168,7 @@
         }
     }
 
-    // IPMI Spec verison 2.0
+    // IPMI Spec version 2.0
     dev_id.ipmi_ver = 2;
 
     // Additional device Support.
@@ -213,7 +213,7 @@
 
     // Byte 2:
     //  55h - No error.
-    //  56h - Self Test funciton not implemented in this controller.
+    //  56h - Self Test function not implemented in this controller.
     //  57h - Corrupted or inaccesssible data or devices.
     //  58h - Fatal hardware error.
     //  FFh - reserved.
diff --git a/chassishandler.cpp b/chassishandler.cpp
index b9d4290..0eef0a0 100644
--- a/chassishandler.cpp
+++ b/chassishandler.cpp
@@ -381,7 +381,7 @@
     }
 
     //PetiBoot-Specific
-    //If sucess then copy the first 9 bytes to the data
+    //If success then copy the first 9 bytes to the data
     memcpy(respptr->data, net_conf_initial_bytes,
            sizeof(net_conf_initial_bytes));
 
diff --git a/dcmihandler.cpp b/dcmihandler.cpp
index 806ddd0..ab3aa58 100644
--- a/dcmihandler.cpp
+++ b/dcmihandler.cpp
@@ -640,7 +640,7 @@
     ipmi_register_callback(NETFUN_GRPEXT, dcmi::Commands::SET_ASSET_TAG,
                            NULL, setAssetTag, PRIVILEGE_OPERATOR);
 
-    // <Get Managment Controller Identifier String>
+    // <Get Management Controller Identifier String>
     printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n",
         NETFUN_GRPEXT, dcmi::Commands::GET_MGMNT_CTRL_ID_STR);
 
diff --git a/groupext.cpp b/groupext.cpp
index 6891d75..5695d07 100644
--- a/groupext.cpp
+++ b/groupext.cpp
@@ -14,7 +14,7 @@
     ipmi_ret_t rc = IPMI_CC_OK;
     uint8_t *p = (uint8_t*) response;
 
-    printf("IPMI GROUP EXTENTIONS\n");
+    printf("IPMI GROUP EXTENSIONS\n");
 
     *data_len = 1;
     *p = 0;
diff --git a/host-ipmid/ipmid-host-cmd-utils.hpp b/host-ipmid/ipmid-host-cmd-utils.hpp
index f564e2a..d95482b 100644
--- a/host-ipmid/ipmid-host-cmd-utils.hpp
+++ b/host-ipmid/ipmid-host-cmd-utils.hpp
@@ -11,7 +11,7 @@
 {
     /** @detail After sending SMS_ATN to the Host, Host comes down and
      *          asks why an 'SMS_ATN` was sent.
-     *          BMC then sends 'There is a Message to be Read` as reponse.
+     *          BMC then sends 'There is a Message to be Read` as response.
      *          Host then comes down asks for Message and the specified
      *          commands and data would go as data conforming to IPMI spec.
      *
diff --git a/sensorhandler.h b/sensorhandler.h
index ca30fb0..b2392ff 100644
--- a/sensorhandler.h
+++ b/sensorhandler.h
@@ -481,7 +481,7 @@
 /**
  * @brief Map offset to the corresponding bit in the assertion byte.
  *
- * The discrete sensors support upto 14 states. 0-7 offsets are stored in one
+ * The discrete sensors support up to 14 states. 0-7 offsets are stored in one
  * byte and offsets 8-14 in the second byte.
  *
  * @param[in] offset - offset number.
diff --git a/softoff/mainapp.cpp b/softoff/mainapp.cpp
index 7cf0eb7..c6c1858 100644
--- a/softoff/mainapp.cpp
+++ b/softoff/mainapp.cpp
@@ -50,7 +50,7 @@
 
     // Claim the bus. Delaying it until sending SMS_ATN may result
     // in a race condition between this available and IPMI trying to send
-    // message as a reponse to ack from host.
+    // message as a response to ack from host.
     bus.request_name(SOFTOFF_BUSNAME);
 
     // Create the SoftPowerOff object.
diff --git a/softoff/test/utest.cpp b/softoff/test/utest.cpp
index 9ffb04e..baaead4 100644
--- a/softoff/test/utest.cpp
+++ b/softoff/test/utest.cpp
@@ -204,7 +204,7 @@
     }
     EXPECT_EQ(false, timer.isExpired());
 
-    // 2 becase of one more count that happens prior to exiting
+    // 2 because of one more count that happens prior to exiting
     EXPECT_EQ(2, count);
 }
 
diff --git a/storageaddsel.cpp b/storageaddsel.cpp
index bd48edc..3232406 100644
--- a/storageaddsel.cpp
+++ b/storageaddsel.cpp
@@ -65,7 +65,7 @@
 
 	if ((r < 0) || (a.bus[0] == 0)) {
 		// Just make a generic message for errors that
-		// occur on sensors that dont exist
+		// occur on sensors that don't exist
 		r = asprintf(s, "Unknown Sensor (0x%02x)", sensor_number);
 	} else {
 
diff --git a/utils.cpp b/utils.cpp
index 81fd919..ea3a6aa 100644
--- a/utils.cpp
+++ b/utils.cpp
@@ -520,7 +520,7 @@
     }
     catch (std::exception & e)
     {
-        log<level::ERR>("Exception occured during getVLAN",
+        log<level::ERR>("Exception occurred during getVLAN",
                         entry("PATH=%s",path.c_str()),
                         entry("EXCEPTION=%s", e.what()));
     }
diff --git a/utils.hpp b/utils.hpp
index 265a555..0b2b2db 100644
--- a/utils.hpp
+++ b/utils.hpp
@@ -46,7 +46,7 @@
                              const std::string& match = {});
 
 /** @brief Gets the ipAddres of first dbus IP object of Non-LinkLocalIPAddress
- *         type from the given subtree, if not avalable gets IP object of
+ *         type from the given subtree, if not available gets IP object of
  *         LinkLocalIPAddress type.
  *  @param[in] bus - DBUS Bus Object.
  *  @param[in] interface - Dbus interface.
