Index: /branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp
===================================================================
--- /branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp	(revision 8752)
+++ /branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp	(revision 8753)
@@ -244,17 +244,27 @@
     return;
   }
-    else {
+  int iEpoBegEarlier = _rtnetStreamBuffer.indexOf('*');
+  if (iEpoBegEarlier != -1 && iEpoBegEarlier < iEpoBeg) { // are there two epoch lines in buffer?
+    _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iEpoBegEarlier);
+  }
+  else {
     _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iEpoBeg);
   }
-
-  int iEpoEnd = _rtnetStreamBuffer.indexOf("EOE"); // end of last epoch
+  int iEpoEnd = _rtnetStreamBuffer.lastIndexOf("EOE"); // end of last epoch
   if (iEpoEnd == -1) {
     return;
   }
-  else {
-    lines = _rtnetStreamBuffer.left(iEpoEnd).split('\n',
-        QString::SkipEmptyParts);
-    _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iEpoEnd + 3);
-  }
+
+  while (_rtnetStreamBuffer.count('*') > 1) { // is there more than 1 epoch line in buffer?
+    QString rtnetStreamBuffer = _rtnetStreamBuffer.mid(1);
+    int nextEpoch = rtnetStreamBuffer.indexOf('*');
+    if (nextEpoch != -1 && nextEpoch < iEpoEnd) {
+      _rtnetStreamBuffer = _rtnetStreamBuffer.mid(nextEpoch);
+    }
+  }
+
+  lines = _rtnetStreamBuffer.left(iEpoEnd).split('\n', 
+      QString::SkipEmptyParts);
+  _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iEpoEnd + 3);
 
   if (lines.size() < 2) {
@@ -345,5 +355,5 @@
   phasebias.UpdateInterval = clkUpdInd;
 
-  for (int ii = 1; ii < lines.size(); ii++) {
+  for (int ii = 1; ii < lines.size(); ii++) {qDebug() << "line: " << lines[ii];
     QString key;  // prn or key VTEC, IND (phase bias indicators)
     double rtnUra = 0.0;    // [m]
