diff --git a/app/watchdog.cpp b/app/watchdog.cpp
index dbd7426..da8ccf3 100644
--- a/app/watchdog.cpp
+++ b/app/watchdog.cpp
@@ -31,11 +31,10 @@
     try
     {
         WatchdogService wd_service;
-        WatchdogService::Properties wd_prop = wd_service.getProperties();
 
         // Notify the caller if we haven't initialized our timer yet
         // so it can configure actions and timeouts
-        if (!wd_prop.initialized)
+        if (!wd_service.getInitialized())
         {
             return IPMI_WDOG_CC_NOT_INIT;
         }
diff --git a/app/watchdog_service.cpp b/app/watchdog_service.cpp
index 26962dc..898cf77 100644
--- a/app/watchdog_service.cpp
+++ b/app/watchdog_service.cpp
@@ -85,6 +85,30 @@
 }
 
 template <typename T>
+T WatchdogService::getProperty(const std::string& key)
+{
+    bool wasValid = wd_service.isValid(bus);
+    auto request = wd_service.newMethodCall(bus, prop_intf, "Get");
+    request.append(wd_intf, key);
+    auto response = bus.call(request);
+    if (response.is_method_error())
+    {
+        wd_service.invalidate();
+        if (wasValid)
+        {
+            // Retry the request once in case the cached service was stale
+            return getProperty<T>(key);
+        }
+        log<level::ERR>("WatchdogService: Method error getting property",
+                        entry("PROPERTY=%s", key.c_str()));
+        elog<InternalFailure>();
+    }
+    variant<T> value;
+    response.read(value);
+    return get<T>(value);
+}
+
+template <typename T>
 void WatchdogService::setProperty(const std::string& key, const T& val)
 {
     bool wasValid = wd_service.isValid(bus);
@@ -105,6 +129,11 @@
     }
 }
 
+bool WatchdogService::getInitialized()
+{
+    return getProperty<bool>("Initialized");
+}
+
 void WatchdogService::setInitialized(bool initialized)
 {
     setProperty("Initialized", initialized);
diff --git a/app/watchdog_service.hpp b/app/watchdog_service.hpp
index ad92213..dfc913a 100644
--- a/app/watchdog_service.hpp
+++ b/app/watchdog_service.hpp
@@ -41,8 +41,15 @@
          */
         Properties getProperties();
 
+        /** @brief Get the value of the initialized property on the host
+         *         watchdog
+         *
+         *  @return The value of the property
+         */
+        bool getInitialized();
+
         /** @brief Sets the value of the initialized property on the host
-		 *         watchdog
+         *         watchdog
          *
          *  @param[in] initialized - The new initializedvalue
          */
@@ -79,6 +86,14 @@
         /** @brief The name of the mapped host watchdog service */
         static ipmi::ServiceCache wd_service;
 
+        /** @brief Gets the value of the property on the host watchdog
+         *
+         *  @param[in] key - The name of the property
+         *  @return The value of the property
+         */
+        template <typename T>
+        T getProperty(const std::string& key);
+
         /** @brief Sets the value of the property on the host watchdog
          *
          *  @param[in] key - The name of the property
