diff --git a/configure.ac b/configure.ac
index e195d91..e902973 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,7 +18,7 @@
 AC_PROG_INSTALL
 AC_PROG_MAKE_SET
 
-# Surpress the --with-libtool-sysroot error
+# Suppress the --with-libtool-sysroot error
 LT_INIT
 
 # Checks for libraries.
diff --git a/ethernet_interface.cpp b/ethernet_interface.cpp
index 15fc473..c9bf123 100644
--- a/ethernet_interface.cpp
+++ b/ethernet_interface.cpp
@@ -619,7 +619,7 @@
         }
         catch(InternalFailure& e)
         {
-            log<level::ERR>("Exception occured during getting of MAC \
+            log<level::ERR>("Exception occurred during getting of MAC \
                                address from Inventory");
             return  MacAddressIntf::mACAddress();
         }
diff --git a/routing_table.cpp b/routing_table.cpp
index bd8f9e0..83d2d24 100644
--- a/routing_table.cpp
+++ b/routing_table.cpp
@@ -53,7 +53,7 @@
 
     do
     {
-        // Recieve response from the kernel
+        // Receive response from the kernel
         if ((readLen = recv(sockFd, bufPtr, BUFSIZE - msgLen, 0)) < 0)
         {
             auto error = errno;
@@ -168,7 +168,7 @@
     if ((sock = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE)) < 0)
     {
         auto error = errno;
-        log<level::ERR>("Error occured during socket creation",
+        log<level::ERR>("Error occurred during socket creation",
                         entry("ERRNO=%s", strerror(error)));
         elog<InternalFailure>();
     }
diff --git a/rtnetlink_server.cpp b/rtnetlink_server.cpp
index 01d7c10..2e1c5bb 100644
--- a/rtnetlink_server.cpp
+++ b/rtnetlink_server.cpp
@@ -139,7 +139,7 @@
 
     if (r < 0)
     {
-        log<level::ERR>("Failure Occured in starting of server:",
+        log<level::ERR>("Failure Occurred in starting of server:",
                         entry("ERRNO=%d", errno));
         elog<InternalFailure>();
     }
diff --git a/util.cpp b/util.cpp
index 31bdd65..5e606a7 100644
--- a/util.cpp
+++ b/util.cpp
@@ -423,7 +423,7 @@
     }
     catch (InternalFailure& e)
     {
-        log<level::INFO>("Exception occured during getting of DHCP value");
+        log<level::INFO>("Exception occurred during getting of DHCP value");
     }
     return dhcp;
 }
diff --git a/util.hpp b/util.hpp
index ff91d17..7e48383 100644
--- a/util.hpp
+++ b/util.hpp
@@ -104,7 +104,7 @@
  */
 bool isValidPrefix(int addressFamily, uint8_t prefixLength);
 
-/* @brief gets the network section of the ip adress.
+/* @brief gets the network section of the ip address.
  * @param[in] addressFamily - IP address family(AF_INET/AF_INET6).
  * @param[in] ipaddress - IP address.
  * @param[in] prefix - prefix length.
