Index: bncgetthread.cpp
===================================================================
--- bncgetthread.cpp	(revision 8910)
+++ bncgetthread.cpp	(working copy)
@@ -722,6 +722,9 @@
         _query->startRequest(_mountPoint, _manualNMEAString);
         _lastManualNMEA = QDateTime::currentDateTime();
       } else if (_serialNMEA == AUTO_NMEA) {
+        // Reset here as GGA might fail at restart
+        _ggatime.restart();
+        _validgga = false;
         if (_serialPort) {
           int nb = _serialPort->bytesAvailable();
           if (nb > 0) {
@@ -985,7 +988,18 @@
           int i2 = data.indexOf("*", i1);
           if (i2 != -1 && data.size() > i2 + 1) {
             QByteArray gga = data.mid(i1, i2 - i1 + 3);
-            _query->sendNMEA(gga);
+            // 1 Min interval if valid GGA with lon/lat
+            if (!_validgga || _ggatime.elapsed() > 1000 * 60* 1) {
+              _ggatime.restart();
+              // Simple lengthcheck for lon/lat
+              if (std::string(gga.data()).size() > 49) {
+                _validgga = true;
+                _query->sendNMEA(gga);
+              }
+              else {
+                _validgga = false;
+              }
+            }
           }
         }
       }
Index: bncgetthread.h
===================================================================
--- bncgetthread.h	(revision 8910)
+++ bncgetthread.h	(working copy)
@@ -143,6 +143,8 @@
    QList<QTcpSocket*>*        _nmeaSockets;
    QMap<QByteArray, int>      _nmeaPortsMap;
    QTcpServer*                _nmeaServer;
+   QTime                      _ggatime;
+   bool                       _validgga;
 };
 
 #endif
