Index: trunk/BNS/bnseph.cpp
===================================================================
--- trunk/BNS/bnseph.cpp	(revision 3145)
+++ trunk/BNS/bnseph.cpp	(revision 3146)
@@ -861,4 +861,54 @@
 t_irc t_ephGal::read(const QStringList& lines) {
 
+  for (int ii = 1; ii <= lines.size(); ii++) {
+    QTextStream in(lines.at(ii-1).toAscii());
+
+    if (ii == 1) {
+      double  year, month, day, hour, minute, second;
+      in >> _prn >> year >> month >> day >> hour >> minute >> second
+         >> _clock_bias >> _clock_drift >> _clock_driftrate;
+      
+      if (year < 100) year += 2000;
+      
+      QDateTime* dateTime = new QDateTime(QDate(int(year), int(month), int(day)), 
+                                          QTime(int(hour), int(minute), int(second)), Qt::UTC);
+
+      // do not allow too new message (actually 12h) ! /JD
+      QDateTime currTime = QDateTime::currentDateTime();
+      if( dateTime->secsTo(currTime) < -3600*12 ){
+         delete dateTime;
+         return failure; 
+      }
+       
+      GPSweekFromDateAndTime(*dateTime, _GPSweek, _GPSweeks); 
+
+      delete dateTime;
+
+      _TOC = _GPSweeks;
+    }
+    else if (ii == 2) {
+      in >> _IODnav >> _Crs >> _Delta_n >> _M0;
+    }  
+    else if (ii == 3) {
+      in >> _Cuc >> _e >> _Cus >> _sqrt_A;
+    }
+    else if (ii == 4) {
+      in >> _TOE >> _Cic >> _OMEGA0 >> _Cis;
+    }  
+    else if (ii == 5) {
+      in >> _i0 >> _Crc >> _omega >> _OMEGADOT;
+    }
+    else if (ii == 6) {
+      double GPSweek, dummy;
+      in >>  _IDOT >> dummy >> GPSweek;
+    }
+    else if (ii == 7) {
+      in >> _SISA >> _E5aHS >> _BGD_1_5A >> _BGD_1_5B;
+    }
+    else if (ii == 8) {
+      double TOW;
+      in >> TOW;
+    }
+  }
   return success;
 }
Index: trunk/BNS/bnseph.h
===================================================================
--- trunk/BNS/bnseph.h	(revision 3145)
+++ trunk/BNS/bnseph.h	(revision 3146)
@@ -148,4 +148,5 @@
   double  _IDOT;             //  [rad/s]
   double  _BGD_1_5A;         //  group delay [s] 
+  double  _BGD_1_5B;         //  group delay [s] 
   int     _SISA;             //  Signal In Space Accuracy
   int     _E5aHS;            //  E5a Health Status
