Index: trunk/BNC/src/rinex/reqcedit.cpp
===================================================================
--- trunk/BNC/src/rinex/reqcedit.cpp	(revision 10599)
+++ trunk/BNC/src/rinex/reqcedit.cpp	(revision 10603)
@@ -724,23 +724,31 @@
 
     if (isNew) {
-      if      (eph->system() == t_eph::GPS) {
+      if      (eph->system() == t_eph::GPS &&
+               eph->type()   == t_eph::LNAV) {
         ephs.append(new t_ephGPS(*dynamic_cast<t_ephGPS*>(eph)));
       }
-      else if (eph->system() == t_eph::GLONASS) {
+      else if (eph->system() == t_eph::GLONASS &&
+               eph->type()   == t_eph::FDMA_M) {
         ephs.append(new t_ephGlo(*dynamic_cast<t_ephGlo*>(eph)));
       }
-      else if (eph->system() == t_eph::Galileo) {
+      else if (eph->system() == t_eph::Galileo &&
+               eph->type()   ==  t_eph::INAV) {
         ephs.append(new t_ephGal(*dynamic_cast<t_ephGal*>(eph)));
       }
-      else if (eph->system() == t_eph::QZSS) {
+      else if (eph->system() == t_eph::QZSS &&
+               eph->type()   == t_eph::LNAV) {
         ephs.append(new t_ephGPS(*dynamic_cast<t_ephGPS*>(eph)));
       }
-      else if (eph->system() == t_eph::SBAS) {
+      else if (eph->system() == t_eph::SBAS &&
+               eph->type()   == t_eph::SBASL1) {
         ephs.append(new t_ephSBAS(*dynamic_cast<t_ephSBAS*>(eph)));
       }
-      else if (eph->system() == t_eph::BDS) {
+      else if (eph->system() == t_eph::BDS &&
+               (eph->type()  == t_eph::D1 ||
+                eph->type()  == t_eph::D2)) {
         ephs.append(new t_ephBDS(*dynamic_cast<t_ephBDS*>(eph)));
       }
-      else if (eph->system() == t_eph::IRNSS) {
+      else if (eph->system() == t_eph::IRNSS &&
+               eph->type()   == t_eph::LNAV) {
         ephs.append(new t_ephGPS(*dynamic_cast<t_ephGPS*>(eph)));
       }
Index: trunk/BNC/src/rinex/rnxnavfile.cpp
===================================================================
--- trunk/BNC/src/rinex/rnxnavfile.cpp	(revision 10599)
+++ trunk/BNC/src/rinex/rnxnavfile.cpp	(revision 10603)
@@ -149,15 +149,15 @@
 ////////////////////////////////////////////////////////////////////////////
 void t_rnxNavFile::read(QTextStream* stream) {
+  QString navType;
+  QString prn;
 
   while (stream->status() == QTextStream::Ok && !stream->atEnd()) {
-
+    char sys;
     QString line = stream->readLine();
     if (line.isEmpty()) {
       continue;
     }
-    QString navType;
+
     QStringList hlp = line.split(QRegExp("\\s+"), Qt::SkipEmptyParts);
-    QString prn;
-    char sys;
     QString firstStr = hlp.at(0);
 
@@ -210,5 +210,5 @@
       }
       if (lines2skip) {
-        for (int ii = 1; ii <= lines2skip; ii++) {
+        for (int ii = 0; ii < lines2skip; ii++) {
           stream->readLine();
         }
@@ -240,5 +240,5 @@
         lines << stream->readLine();
       }
-      eph = new t_ephGPS(version(), lines);
+      eph = new t_ephGPS(version(), lines, navType);
     }
     else if (sys == 'R') {
@@ -250,5 +250,5 @@
         lines << stream->readLine();
       }
-      eph = new t_ephGlo(version(), lines);
+      eph = new t_ephGlo(version(), lines, navType);
     }
     else if (sys == 'E') {
@@ -256,5 +256,5 @@
         lines << stream->readLine();
       }
-      eph = new t_ephGal(version(), lines);
+      eph = new t_ephGal(version(), lines, navType);
     }
     else if (sys == 'J') {
@@ -269,5 +269,5 @@
         lines << stream->readLine();
       }
-      eph = new t_ephGPS(version(), lines);
+      eph = new t_ephGPS(version(), lines, navType);
     }
     else if (sys== 'S') {
@@ -275,5 +275,5 @@
         lines << stream->readLine();
       }
-      eph = new t_ephSBAS(version(), lines);
+      eph = new t_ephSBAS(version(), lines, navType);
     }
     else if (sys == 'C') {
@@ -289,5 +289,5 @@
         lines << stream->readLine();
       }
-      eph = new t_ephBDS(version(), lines);
+      eph = new t_ephBDS(version(), lines, navType);
     }
     else if (sys == 'I') {
@@ -299,5 +299,5 @@
         lines << stream->readLine();
       }
-      eph = new t_ephGPS(version(), lines);
+      eph = new t_ephGPS(version(), lines, navType);
     }
 
