diff --git a/components/structures/src/new_frame.cpp b/components/structures/src/new_frame.cpp
index 09b91e3af8503223e34e834db8d97688c2f397e9..2b45a62a3b3729500ee041a1ee978e09d842420f 100644
--- a/components/structures/src/new_frame.cpp
+++ b/components/structures/src/new_frame.cpp
@@ -281,16 +281,14 @@ void Frame::store() {
 				//data_.erase(c.first);
 				d.status = ChannelStatus::INVALID;
 			}
-
-			uint64_t sig = (uint64_t(id()) << 32) + static_cast<unsigned int>(c.first);
-			const auto &i = parent_->change_channel_.find(sig);
-
-			if (i != parent_->change_channel_.end()) i->second.trigger(*this, c.first);
 		}
 	}
 
 	for (auto c : changed_) {
 		parent_->change_.trigger(*this, c.first);
+		uint64_t sig = (uint64_t(id()) << 32) + static_cast<unsigned int>(c.first);
+		const auto &i = parent_->change_channel_.find(sig);
+		if (i != parent_->change_channel_.end()) i->second.trigger(*this, c.first);
 	}
 }