Index: MessageClient.cpp
===================================================================
--- MessageClient.cpp	(revision 6314)
+++ MessageClient.cpp	(working copy)
@@ -327,6 +327,20 @@
                                    , QString const& report, QString const& tx_mode
                                    , bool tx_enabled, bool transmitting, bool decoding)
 {
+  // If nothing changed since last message just return
+  if (f == f_last && mode == mode_last && dx_call == dx_call_last && report == report_last 
+    && tx_mode == tx_mode_last && tx_enabled == tx_enabled_last && transmitting == transmitting_last
+	&& decoding == decoding_last) {
+		return;
+	}
+  mode_last = mode;
+  dx_call_last = dx_call;
+  report_last = report;
+  tx_mode_last = tx_mode;
+  tx_enabled_last = tx_enabled;
+  transmitting_last = transmitting_last;
+  decoding_last = decoding;
+  
   if (m_->server_port_ && !m_->server_string_.isEmpty ())
     {
       QByteArray message;
Index: MessageClient.hpp
===================================================================
--- MessageClient.hpp	(revision 6314)
+++ MessageClient.hpp	(working copy)
@@ -87,6 +87,14 @@
 private:
   class impl;
   pimpl<impl> m_;
-};
+  // Remember status_update parameters to avoid duplicate messages
+  Frequency f_last;
+  QString mode_last;
+  QString dx_call_last;
+  QString report_last;
+  QString tx_mode_last;
+  bool tx_enabled_last;
+  bool transmitting_last;
+  bool decoding_last;};
 
 #endif
