diff --git a/extensions/openpower-pels/data_interface.cpp b/extensions/openpower-pels/data_interface.cpp
index eaedcff..1c51167 100644
--- a/extensions/openpower-pels/data_interface.cpp
+++ b/extensions/openpower-pels/data_interface.cpp
@@ -106,8 +106,8 @@
     "xyz.openbmc_project.Inventory.Item.PowerSupply";
 } // namespace interface
 
-using namespace sdbusplus::xyz::openbmc_project::State::Boot::server;
-using namespace sdbusplus::xyz::openbmc_project::State::server;
+using namespace sdbusplus::server::xyz::openbmc_project::state::boot;
+using namespace sdbusplus::server::xyz::openbmc_project::state;
 namespace match_rules = sdbusplus::bus::match::rules;
 
 const DBusInterfaceList hotplugInterfaces{interface::invFan,
diff --git a/extensions/openpower-pels/manager.cpp b/extensions/openpower-pels/manager.cpp
index 29fe67e..9a64722 100644
--- a/extensions/openpower-pels/manager.cpp
+++ b/extensions/openpower-pels/manager.cpp
@@ -46,7 +46,7 @@
 
 namespace common_error = sdbusplus::xyz::openbmc_project::Common::Error;
 
-using Create = sdbusplus::xyz::openbmc_project::Logging::server::Create;
+using Create = sdbusplus::server::xyz::openbmc_project::logging::Create;
 
 namespace additional_data
 {
@@ -632,7 +632,7 @@
     std::string message, Entry::Level severity,
     std::map<std::string, std::string> additionalData,
     std::vector<std::tuple<
-        sdbusplus::xyz::openbmc_project::Logging::server::Create::FFDCFormat,
+        sdbusplus::server::xyz::openbmc_project::logging::Create::FFDCFormat,
         uint8_t, uint8_t, sdbusplus::message::unix_fd>>
         fFDC)
 {
diff --git a/extensions/openpower-pels/manager.hpp b/extensions/openpower-pels/manager.hpp
index b8c5442..c5bda7f 100644
--- a/extensions/openpower-pels/manager.hpp
+++ b/extensions/openpower-pels/manager.hpp
@@ -551,7 +551,7 @@
      */
     std::map<std::string,
              std::unique_ptr<
-                 sdbusplus::org::open_power::Logging::PEL::server::Entry>>
+                 sdbusplus::server::org::open_power::logging::pel::Entry>>
         _pelEntries;
 
     /**
diff --git a/extensions/openpower-pels/pel_entry.cpp b/extensions/openpower-pels/pel_entry.cpp
index 3515128..89e9dd0 100644
--- a/extensions/openpower-pels/pel_entry.cpp
+++ b/extensions/openpower-pels/pel_entry.cpp
@@ -11,11 +11,11 @@
 
 bool PELEntry::managementSystemAck(bool value)
 {
-    auto current = sdbusplus::org::open_power::Logging::PEL::server::Entry::
+    auto current = sdbusplus::server::org::open_power::logging::pel::Entry::
         managementSystemAck();
     if (value != current)
     {
-        current = sdbusplus::org::open_power::Logging::PEL::server::Entry::
+        current = sdbusplus::server::org::open_power::logging::pel::Entry::
             managementSystemAck(value);
 
         Repository::LogID id{Repository::LogID::Obmc(getMyId())};
diff --git a/extensions/openpower-pels/pel_entry.hpp b/extensions/openpower-pels/pel_entry.hpp
index f42fc3b..482efce 100644
--- a/extensions/openpower-pels/pel_entry.hpp
+++ b/extensions/openpower-pels/pel_entry.hpp
@@ -6,7 +6,7 @@
 namespace pels
 {
 
-using PELEntryIface = sdbusplus::org::open_power::Logging::PEL::server::Entry;
+using PELEntryIface = sdbusplus::server::org::open_power::logging::pel::Entry;
 using PropertiesVariant = PELEntryIface::PropertiesVariant;
 
 class PELEntry : public PELEntryIface
diff --git a/extensions/openpower-pels/phal_service_actions.hpp b/extensions/openpower-pels/phal_service_actions.hpp
index 8d8652c..8032663 100644
--- a/extensions/openpower-pels/phal_service_actions.hpp
+++ b/extensions/openpower-pels/phal_service_actions.hpp
@@ -13,7 +13,7 @@
 {
 
 using EntrySeverity =
-    sdbusplus::xyz::openbmc_project::HardwareIsolation::server::Entry::Type;
+    sdbusplus::server::xyz::openbmc_project::hardware_isolation::Entry::Type;
 
 /**
  * @brief Helper function to create service actions in the PEL
