diff --git a/sdbusplus/server/interface.hpp b/sdbusplus/server/interface.hpp
index e3a2059..db956e8 100644
--- a/sdbusplus/server/interface.hpp
+++ b/sdbusplus/server/interface.hpp
@@ -80,6 +80,16 @@
         return _bus.new_signal(_path.c_str(), _interf.c_str(), member);
     }
 
+    /** @brief Broadcast a property changed signal.
+     *
+     *  @param[in] property - The property which changed.
+     */
+    void property_changed(const char* property)
+    {
+        sd_bus_emit_properties_changed(_bus.get(), _path.c_str(),
+                                       _interf.c_str(), property, nullptr);
+    }
+
     bus::bus& bus() { return _bus; }
     const std::string& path() { return _path; }
 
diff --git a/tools/templates/interface.mako.server.cpp b/tools/templates/interface.mako.server.cpp
index cb4ca29..2a5c497 100644
--- a/tools/templates/interface.mako.server.cpp
+++ b/tools/templates/interface.mako.server.cpp
@@ -3,6 +3,9 @@
     <%
         namespaces = interface.name.split('.')
         classname = namespaces.pop()
+
+        def interface_instance():
+            return "_".join(interface.name.split('.') + ['interface'])
     %>
 namespace sdbusplus
 {
@@ -14,7 +17,7 @@
     % endfor
 
 ${classname}::${classname}(bus::bus& bus, const char* path)
-        : _${"_".join(interface.name.split('.'))}_interface(
+        : _${interface_instance()}(
                 bus, path, _interface, _vtable, this)
 {
 }
@@ -48,7 +51,11 @@
 
 ${p.typeName} ${classname}::${p.camelCase}(${p.typeName} value)
 {
-    _${p.camelCase} = value;
+    if (_${p.camelCase} != value)
+    {
+        _${p.camelCase} = value;
+        _${interface_instance()}.property_changed("${p.name}");
+    }
 
     return _${p.camelCase};
 }
@@ -93,7 +100,8 @@
                      details::${classname}::_property_${p.name}
                         .data(),
                      _callback_get_${p.name},
-                     _callback_set_${p.name}),
+                     _callback_set_${p.name},
+                     vtable::property_::emits_change),
     % endfor
     vtable::end()
 };
