diff --git a/include/manufacturingcommands.hpp b/include/manufacturingcommands.hpp
index 07e0a5a..f8eae09 100644
--- a/include/manufacturingcommands.hpp
+++ b/include/manufacturingcommands.hpp
@@ -329,7 +329,7 @@
 
     bool revertFanPWM = false;
     bool revertLedCallback = false;
-    phosphor::Timer revertTimer;
+    sdbusplus::Timer revertTimer;
     int mtmTestBeepFd = -1;
 };
 
diff --git a/include/smbiosmdrv2handler.hpp b/include/smbiosmdrv2handler.hpp
index 7fd6f55..99e6bb6 100644
--- a/include/smbiosmdrv2handler.hpp
+++ b/include/smbiosmdrv2handler.hpp
@@ -256,7 +256,7 @@
     MDRV2()
     {
         timer =
-            std::make_unique<phosphor::Timer>([&](void) { timeoutHandler(); });
+            std::make_unique<sdbusplus::Timer>([&](void) { timeoutHandler(); });
     }
 
     int agentLookup(const uint16_t& agentId);
@@ -311,7 +311,7 @@
                              smbiosTableStorageSize,
                              smbiosTableStorage}};
     std::unique_ptr<SharedMemoryArea> area;
-    std::unique_ptr<phosphor::Timer> timer;
+    std::unique_ptr<sdbusplus::Timer> timer;
 
   private:
     uint8_t lockIndex = 0;
diff --git a/src/chassiscommands.cpp b/src/chassiscommands.cpp
index 93ab200..8a40017 100644
--- a/src/chassiscommands.cpp
+++ b/src/chassiscommands.cpp
@@ -64,7 +64,7 @@
 
 constexpr size_t defaultIdentifyTimeOut = 15;
 
-std::unique_ptr<phosphor::Timer> identifyTimer
+std::unique_ptr<sdbusplus::Timer> identifyTimer
     __attribute__((init_priority(101)));
 std::unique_ptr<sdbusplus::bus::match_t> matchPtr
     __attribute__((init_priority(101)));
@@ -177,7 +177,7 @@
     if (!identifyTimer)
     {
         identifyTimer =
-            std::make_unique<phosphor::Timer>(enclosureIdentifyLedBlinkOff);
+            std::make_unique<sdbusplus::Timer>(enclosureIdentifyLedBlinkOff);
     }
 }
 
diff --git a/src/firmware-update.cpp b/src/firmware-update.cpp
index 9bde818..93e9078 100644
--- a/src/firmware-update.cpp
+++ b/src/firmware-update.cpp
@@ -562,10 +562,10 @@
     std::unique_ptr<sdbusplus::bus::match_t>& fwUpdateMatchSignal)
 {
     // Setup timer for watching signal
-    static phosphor::Timer timer(
+    static sdbusplus::Timer timer(
         [&fwUpdateMatchSignal]() { fwUpdateMatchSignal = nullptr; });
 
-    static phosphor::Timer activationStatusTimer([]() {
+    static sdbusplus::Timer activationStatusTimer([]() {
         if (fwUpdateStatus.activationTimerTimeout() > 95)
         {
             activationStatusTimer.stop();
diff --git a/src/storagecommands.cpp b/src/storagecommands.cpp
index 21aabdb..8c9b49a 100644
--- a/src/storagecommands.cpp
+++ b/src/storagecommands.cpp
@@ -115,7 +115,7 @@
 static uint16_t writeBus = 0xFFFF;
 static uint8_t writeAddr = 0XFF;
 
-std::unique_ptr<phosphor::Timer> writeTimer = nullptr;
+std::unique_ptr<sdbusplus::Timer> writeTimer = nullptr;
 static std::vector<sdbusplus::bus::match_t> fruMatches;
 
 ManagedObjectType frus;
@@ -157,7 +157,7 @@
 
 void createTimers()
 {
-    writeTimer = std::make_unique<phosphor::Timer>(writeFru);
+    writeTimer = std::make_unique<sdbusplus::Timer>(writeFru);
 }
 
 void recalculateHashes()
