diff --git a/utils.cpp b/utils.cpp
index f6a840a..4aaf9c0 100644
--- a/utils.cpp
+++ b/utils.cpp
@@ -227,15 +227,14 @@
 }
 
 ServiceCache::ServiceCache(const std::string& intf, const std::string& path) :
-    intf(intf), path(path), cachedService(std::experimental::nullopt),
-    cachedBusName(std::experimental::nullopt)
+    intf(intf), path(path), cachedService(std::nullopt),
+    cachedBusName(std::nullopt)
 {
 }
 
 ServiceCache::ServiceCache(std::string&& intf, std::string&& path) :
-    intf(std::move(intf)), path(std::move(path)),
-    cachedService(std::experimental::nullopt),
-    cachedBusName(std::experimental::nullopt)
+    intf(std::move(intf)), path(std::move(path)), cachedService(std::nullopt),
+    cachedBusName(std::nullopt)
 {
 }
 
@@ -251,8 +250,8 @@
 
 void ServiceCache::invalidate()
 {
-    cachedBusName = std::experimental::nullopt;
-    cachedService = std::experimental::nullopt;
+    cachedBusName = std::nullopt;
+    cachedService = std::nullopt;
 }
 
 sdbusplus::message::message
diff --git a/utils.hpp b/utils.hpp
index 8b69b09..a100718 100644
--- a/utils.hpp
+++ b/utils.hpp
@@ -1,7 +1,7 @@
 #pragma once
 #include "types.hpp"
 
-#include <experimental/optional>
+#include <optional>
 #include <sdbusplus/server.hpp>
 
 namespace ipmi
@@ -76,9 +76,9 @@
     /** @brief DBUS path provided by the service */
     const std::string path;
     /** @brief The name of the service if valid */
-    std::experimental::optional<std::string> cachedService;
+    std::optional<std::string> cachedService;
     /** @brief The name of the bus used in the service lookup */
-    std::experimental::optional<std::string> cachedBusName;
+    std::optional<std::string> cachedBusName;
 };
 
 /**
