Index: trunk/BNC/RTCM3/RTCM3coDecoder.cpp
===================================================================
--- trunk/BNC/RTCM3/RTCM3coDecoder.cpp	(revision 1827)
+++ trunk/BNC/RTCM3/RTCM3coDecoder.cpp	(revision 1828)
@@ -72,4 +72,6 @@
   connect(this, SIGNAL(newCorrLine(QString, QString, long)), 
           (bncApp*) qApp, SLOT(slotNewCorrLine(QString, QString, long)));
+
+  memset(&_co, 0, sizeof(_co));
 }
 
@@ -127,6 +129,4 @@
   while (true) {
    
-    memset(&_co, 0, sizeof(_co));
-
     int bytesused = 0;
     GCOB_RETURN irc = GetClockOrbitBias(&_co, &_bias, _buffer.data(), 
@@ -135,5 +135,5 @@
     // Not enough Data
     // ---------------
-    if      (irc == GCOBR_SHORTBUFFER ||
+    if      (irc == GCOBR_SHORTBUFFER         ||
              irc == GCOBR_MESSAGEEXCEEDSBUFFER) {
       if (retCode != success) {
@@ -142,9 +142,15 @@
       return retCode;
     }
+
+    // Second part of the message follows
+    // ----------------------------------
+    else if (irc == GCOBR_MESSAGEFOLLOWS) {
+      _buffer = _buffer.mid(bytesused);
+    }
     
     // Message correctly decoded
     // -------------------------
-    else if ( (irc == GCOBR_OK || irc == GCOBR_MESSAGEFOLLOWS) && 
-              bytesused > 0) {
+    else if (bytesused > 0 && irc == GCOBR_OK) {
+
       reopen();
 
@@ -205,4 +211,5 @@
       _buffer = _buffer.mid(bytesused);
       retCode = success;
+      memset(&_co, 0, sizeof(_co));
     }
 
