diff --git a/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.cpp b/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.cpp
index c50e415dcb08afad89a77dc531d9439bc7835623..b78f7a6b63bb856cc0c57446c7a0f56a6d095a6a 100644
--- a/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.cpp
+++ b/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.cpp
@@ -53,6 +53,18 @@ OutgoingMessagesViewerModule::OutgoingMessagesViewerModule()
             &OutgoingMessagesViewerModule::updateElapsedTime);
 }
 
+OutgoingMessagesViewerModule::~OutgoingMessagesViewerModule()
+{
+    MessageBroker::getInstance().unsubscribe(
+        Filter::fromString(SkywardHubStrings::logCommandsTopic), this);
+    MessageBroker::getInstance().unsubscribe(
+        Filter::fromString(SkywardHubStrings::mavlink_received_msg_ACK_topic),
+        this);
+    MessageBroker::getInstance().unsubscribe(
+        Filter::fromString(SkywardHubStrings::mavlink_received_msg_NACK_topic),
+        this);
+}
+
 XmlObject OutgoingMessagesViewerModule::toXmlObject()
 {
     XmlObject obj = Module::toXmlObject();
diff --git a/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.h b/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.h
index 2a92998e7223ba29884b0ac39d04a5247be8c0c3..40a8740efdda73e4adf0b681ec8cd1fb3d0bcf73 100644
--- a/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.h
+++ b/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.h
@@ -33,6 +33,7 @@ class OutgoingMessagesViewerModule : public Module
 
 public:
     OutgoingMessagesViewerModule();
+    ~OutgoingMessagesViewerModule();
 
     XmlObject toXmlObject() override;
     void fromXmlObject(const XmlObject& xmlObject) override;