diff --git a/control/json/zone.cpp b/control/json/zone.cpp
index be827cf..90aeb66 100644
--- a/control/json/zone.cpp
+++ b/control/json/zone.cpp
@@ -74,6 +74,12 @@
         setInterfaces(jsonObj);
     }
 
+    // Restore thermal control current mode state
+    restoreCurrentMode();
+
+    // Emit object added for this zone dbus object
+    this->emit_object_added();
+
     // Start timer for fan target decreases
     _decTimer.restart(_decInterval);
 }
@@ -373,6 +379,33 @@
     oArch(ThermalObject::current());
 }
 
+void Zone::restoreCurrentMode()
+{
+    auto current = ThermalObject::current();
+    fs::path path{CONTROL_PERSIST_ROOT_PATH};
+    path /= getName();
+    path /= "CurrentMode";
+    fs::create_directories(path.parent_path());
+
+    try
+    {
+        if (fs::exists(path))
+        {
+            std::ifstream ifs(path.c_str(), std::ios::in | std::ios::binary);
+            cereal::JSONInputArchive iArch(ifs);
+            iArch(current);
+        }
+    }
+    catch (std::exception& e)
+    {
+        log<level::ERR>(e.what());
+        fs::remove(path);
+        current = ThermalObject::current();
+    }
+
+    this->current(current);
+}
+
 /**
  * Properties of interfaces supported by the zone configuration that return
  * a handler function that sets the zone's property value(s) and persist state.
