diff --git a/mainloop.cpp b/mainloop.cpp
index b2ae7ff..1bef288 100644
--- a/mainloop.cpp
+++ b/mainloop.cpp
@@ -114,6 +114,8 @@
 auto addValue(const SensorSet::key_type& sensor,
               const std::string& sysfsRoot, ObjectInfo& info)
 {
+    static constexpr bool deferSignals = true;
+
     // Get the initial value for the value interface.
     auto& bus = *std::get<sdbusplus::bus::bus*>(info);
     auto& obj = std::get<Object>(info);
@@ -127,7 +129,7 @@
     int val = 0;
     read_sysfs(sysfsPath, val);
 
-    auto iface = std::make_shared<ValueObject>(bus, objPath.c_str());
+    auto iface = std::make_shared<ValueObject>(bus, objPath.c_str(), deferSignals);
     iface->value(val);
 
     Attributes attrs;
@@ -199,6 +201,10 @@
         addThreshold<WarningObject>(i.first, sensorValue, info);
         addThreshold<CriticalObject>(i.first, sensorValue, info);
 
+        // All the interfaces have been created.  Go ahead
+        // and emit InterfacesAdded.
+        valueInterface->emit_object_added();
+
         auto value = std::make_tuple(
                          std::move(i.second),
                          std::move(label),
diff --git a/thresholds.hpp b/thresholds.hpp
index 68d9422..6f7bef2 100644
--- a/thresholds.hpp
+++ b/thresholds.hpp
@@ -92,6 +92,8 @@
 auto addThreshold(const SensorSet::key_type& sensor,
                   int64_t value, ObjectInfo& info)
 {
+    static constexpr bool deferSignals = true;
+
     auto& bus = *std::get<sdbusplus::bus::bus*>(info);
     auto& objPath = std::get<std::string>(info);
     auto& obj = std::get<Object>(info);
@@ -100,7 +102,7 @@
     auto tHi = getEnv(Thresholds<T>::envHi, sensor);
     if (!tLo.empty() && !tHi.empty())
     {
-        iface = std::make_shared<T>(bus, objPath.c_str());
+        iface = std::make_shared<T>(bus, objPath.c_str(), deferSignals);
         auto lo = stoi(tLo);
         auto hi = stoi(tHi);
         (*iface.*Thresholds<T>::setLo)(lo);
