diff --git a/src/main.cpp b/src/main.cpp
index c0564e5..e57c767 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -118,7 +118,7 @@
 static inline void
     handleListUnitsResponse(sdbusplus::asio::object_server& server,
                             std::shared_ptr<sdbusplus::asio::connection>& conn,
-                            boost::system::error_code ec,
+                            boost::system::error_code /*ec*/,
                             const std::vector<ListUnitsType>& listUnits)
 {
     // Loop through all units, and mark all units, which has to be
@@ -316,7 +316,7 @@
         "type='signal',"
         "member='StartupFinished',path='/org/freedesktop/systemd1',"
         "interface='org.freedesktop.systemd1.Manager'",
-        [&server, &conn](sdbusplus::message::message& msg) {
+        [&server, &conn](sdbusplus::message::message& /*msg*/) {
             if (!unitQueryStarted)
             {
                 unitQueryStarted = true;
diff --git a/src/srvcfg_manager.cpp b/src/srvcfg_manager.cpp
index 1818bd7..0a6fcd9 100644
--- a/src/srvcfg_manager.cpp
+++ b/src/srvcfg_manager.cpp
@@ -184,14 +184,12 @@
     {
         std::string socketUnitName(instantiatedUnitName + ".socket");
         /// Check override socket directory exist, if not create it.
-        std::experimental::filesystem::path ovrUnitFileDir(
-            systemdOverrideUnitBasePath);
+        std::filesystem::path ovrUnitFileDir(systemdOverrideUnitBasePath);
         ovrUnitFileDir += socketUnitName;
         ovrUnitFileDir += ".d";
-        if (!std::experimental::filesystem::exists(ovrUnitFileDir))
+        if (!std::filesystem::exists(ovrUnitFileDir))
         {
-            if (!std::experimental::filesystem::create_directories(
-                    ovrUnitFileDir))
+            if (!std::filesystem::create_directories(ovrUnitFileDir))
             {
                 phosphor::logging::log<phosphor::logging::level::ERR>(
                     "Unable to create the directory.",
@@ -210,8 +208,8 @@
     const std::string& objPath_, const std::string& baseUnitName_,
     const std::string& instanceName_, const std::string& serviceObjPath_,
     const std::string& socketObjPath_) :
-    server(srv_),
-    conn(conn_), objPath(objPath_), baseUnitName(baseUnitName_),
+    conn(conn_),
+    server(srv_), objPath(objPath_), baseUnitName(baseUnitName_),
     instanceName(instanceName_), serviceObjectPath(serviceObjPath_),
     socketObjectPath(socketObjPath_)
 {
