diff --git a/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.cpp b/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.cpp
index 28a67fd84846ddd10fbe095f4cd375354ea45ead..7be4f30fbfee0ab866173d302f8f741b90eb17ff 100644
--- a/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.cpp
+++ b/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.cpp
@@ -46,6 +46,11 @@ OutgoingMessagesViewerModule::OutgoingMessagesViewerModule()
         this,
         [this](const Message& message, const Filter& filter)
         { handleNack(message); });
+    MessageBroker::getInstance().subscribe(
+        Filter::fromString(SkywardHubStrings::mavlink_received_msg_WACK_topic),
+        this,
+        [this](const Message& message, const Filter& filter)
+        { handleWack(message); });
 }
 
 OutgoingMessagesViewerModule::~OutgoingMessagesViewerModule() { delete ui; }
@@ -74,7 +79,7 @@ void OutgoingMessagesViewerModule::handleAck(const Message& ack)
     {
         Message msg = messages[i].getMsg();
 
-        // Color the message the ack is for by checking the message is and
+        // Color the message the ack is for by checking the message id and
         // sequence number
         if (msg.getField("message_id") == ack.getField("recv_msgid"))
             if (msg.getField("sequence_number") == ack.getField("seq_ack"))
@@ -88,7 +93,7 @@ void OutgoingMessagesViewerModule::handleNack(const Message& nack)
     {
         Message msg = messages[i].getMsg();
 
-        // Color the message the nack is for by checking the message is and
+        // Color the message the nack is for by checking the message id and
         // sequence number
         if (msg.getField("message_id") == nack.getField("recv_msgid"))
             if (msg.getField("sequence_number") == nack.getField("seq_ack"))
@@ -96,6 +101,21 @@ void OutgoingMessagesViewerModule::handleNack(const Message& nack)
     }
 }
 
+void OutgoingMessagesViewerModule::handleWack(const Message& wack)
+{
+    for (int i = 0; i < messages.count(); i++)
+    {
+        Message msg = messages[i].getMsg();
+
+        // Color the message the wack is for by checking the message id and
+        // sequence number
+        if (msg.getField("message_id") == wack.getField("recv_msgid"))
+            if (msg.getField("sequence_number") == wack.getField("seq_ack"))
+                messages[i].getItem()->setBackground(
+                    QBrush(QColor(255, 255, 255)));
+    }
+}
+
 int OutgoingMessagesViewerModule::updateVerticalHeaders(const Message& msg)
 {
     int row = 0;  // Insert on top
diff --git a/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.h b/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.h
index c51592123f215b75a086135d729e33e2ced3b6c1..4fccc266820f00568f7f791a4b3989c3b96799c5 100644
--- a/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.h
+++ b/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.h
@@ -58,6 +58,7 @@ public:
     void addMsgSent(const Message& msg);
     void handleAck(const Message& ack);
     void handleNack(const Message& nack);
+    void handleWack(const Message& wack);
 
 protected:
     int updateVerticalHeaders(const Message& msg);
diff --git a/src/shared/Modules/SkywardHubStrings.h b/src/shared/Modules/SkywardHubStrings.h
index 3fe3e14c9ae661b3dea8b87ec0c3b055a4f149c6..1742e9079cf505d1c4a8e73712d6f6e7b0cc8ff3 100644
--- a/src/shared/Modules/SkywardHubStrings.h
+++ b/src/shared/Modules/SkywardHubStrings.h
@@ -74,6 +74,8 @@ static const QString mavlink_received_msg_ACK_topic =
     mavlink_received_msg_topic + "/ACK_TM";
 static const QString mavlink_received_msg_NACK_topic =
     mavlink_received_msg_topic + "/NACK_TM";
+static const QString mavlink_received_msg_WACK_topic =
+    mavlink_received_msg_topic + "/WACK_TM";
 
 static const QString mavlink_system_id_name    = "system_id";
 static const QString mavlink_component_id_name = "component_id";