Index: trunk/BNC/src/upload/bncrtnetuploadcaster.cpp
===================================================================
--- trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 9842)
+++ trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 9843)
@@ -264,5 +264,4 @@
   QMutexLocker locker(&_mutex);
 
-
   // Append to internal buffer
   // -------------------------
@@ -275,6 +274,52 @@
   if (iEpoBeg == -1) {
     _rtnetStreamBuffer.clear();
+    emit(newMessage(
+          "bncRtnetUploadCaster: no Epoch line found " + _casterID.toLatin1(), false));
     return;
   }
+  _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iEpoBeg);
+
+  int iEpoEnd = _rtnetStreamBuffer.lastIndexOf("EOE"); // end   of last epoch
+  if (iEpoEnd == -1) {
+    emit(newMessage(
+          "bncRtnetUploadCaster: no EOE found " + _casterID.toLatin1(), false));
+    return;
+  }
+  else {
+    lines = _rtnetStreamBuffer.left(iEpoEnd).split('\n', QString::SkipEmptyParts);
+    _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iEpoEnd+3);
+  }
+
+  if (lines.size() < 2) {
+      emit(newMessage(
+            "bncRtnetUploadCaster: less than 2 lines to decode " + _casterID.toLatin1(), false));
+    return;
+  }
+
+  // Keep the last unfinished line in buffer
+  // ---------------------------------------
+  int iLastEOL = _rtnetStreamBuffer.lastIndexOf('\n');
+  if (iLastEOL != -1) {
+    _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iLastEOL+1);
+    emit(newMessage(
+          "bncRtnetUploadCaster: keep the last unfinished line in buffer " + _casterID.toLatin1(), false));
+  }
+
+
+  /* Append to internal buffer
+  // -------------------------
+  _rtnetStreamBuffer.append(QByteArray(buffer, bufLen));
+
+  // Select buffer part that contains last epoch
+  // -------------------------------------------
+  QStringList lines;
+  int iEpoBeg = _rtnetStreamBuffer.lastIndexOf('*');   // begin of last epoch
+  if (iEpoBeg == -1) {
+    _rtnetStreamBuffer.clear();
+    emit(newMessage(
+          "bncRtnetUploadCaster: no Epoch line found " + _casterID.toLatin1(), false));
+    return;
+  }
+
   int iEpoBegEarlier = _rtnetStreamBuffer.indexOf('*');
   if (iEpoBegEarlier != -1 && iEpoBegEarlier < iEpoBeg) { // are there two epoch lines in buffer?
@@ -284,6 +329,10 @@
     _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iEpoBeg);
   }
+
   int iEpoEnd = _rtnetStreamBuffer.lastIndexOf("EOE"); // end of last epoch
   if (iEpoEnd == -1) {
+    _rtnetStreamBuffer.clear();
+    emit(newMessage(
+          "bncRtnetUploadCaster: no EOE found " + _casterID.toLatin1(), false));
     return;
   }
@@ -309,5 +358,5 @@
     return;
   }
-
+*/
   // Read first line (with epoch time)
   // ---------------------------------
