Index: trunk/BNC/src/bncutils.cpp
===================================================================
--- trunk/BNC/src/bncutils.cpp	(revision 8789)
+++ trunk/BNC/src/bncutils.cpp	(revision 8790)
@@ -815,8 +815,7 @@
       type == t_eph::SBAS||
       type == t_eph::QZSS) {
-
     if ((index >= 0) && (index <= 6)) {
       if (index == 3) {
-        return ceil(10.0 * pow(2.0, (double(index) / 2.0) + 1.0)) / 10.0;
+        return  ceil(10.0 * pow(2.0, (double(index) / 2.0) + 1.0)) / 10.0;
       }
       else {
@@ -831,6 +830,5 @@
     }
   }
-
-  if (type == t_eph::Galileo) {
+  else if (type == t_eph::Galileo) {
 
     if ((index >= 0) && (index <= 49)) {
@@ -848,4 +846,23 @@
     else {
       return -1.0;
+    }
+  }
+  else if (type == t_eph::IRNSS) {
+    if ((index >= 0) && (index <= 6)) {
+      if      (index == 1) {
+        return 2.8;
+      }
+      else if (index == 3) {
+        return 5.7;
+      }
+      else if (index == 5) {
+        return 11.3;
+      }
+      else {
+        return pow(2, 1 + index / 2);
+      }
+    }
+    else if ((index > 6) && (index <= 15)) {
+      return pow(2, index - 1);
     }
   }
Index: trunk/BNC/src/ephemeris.cpp
===================================================================
--- trunk/BNC/src/ephemeris.cpp	(revision 8789)
+++ trunk/BNC/src/ephemeris.cpp	(revision 8790)
@@ -439,12 +439,4 @@
     .arg(_OMEGADOT, 19, 'e', 12);
 
-  if (type() == t_eph::IRNSS) {
-    out << QString(fmt)
-      .arg(_IDOT,    19, 'e', 12)
-      .arg("",       19, QChar(' '))
-      .arg(_TOEweek, 19, 'e', 12)
-      .arg("",       19, QChar(' '));
-  }
-  else {
     out << QString(fmt)
       .arg(_IDOT,    19, 'e', 12)
@@ -452,5 +444,4 @@
       .arg(_TOEweek, 19, 'e', 12)
       .arg(_L2PFlag, 19, 'e', 12);
-  }
 
   if (type() == t_eph::IRNSS) {
@@ -459,5 +450,5 @@
       .arg(_health, 19, 'e', 12)
       .arg(_TGD,    19, 'e', 12)
-      .arg("",       19, QChar(' '));
+      .arg(0.0,     19, 'e', 12);
   }
   else {
@@ -473,18 +464,9 @@
     tot = 0.0;
   }
-  if (type() == t_eph::IRNSS) {
-    out << QString(fmt)
-      .arg(tot,          19, 'e', 12)
-      .arg("",           19, QChar(' '))
-      .arg("",           19, QChar(' '))
-      .arg("",           19, QChar(' '));
-  }
-  else {
-    out << QString(fmt)
+  out << QString(fmt)
       .arg(tot,          19, 'e', 12)
       .arg(_fitInterval, 19, 'e', 12)
       .arg("",           19, QChar(' '))
       .arg("",           19, QChar(' '));
-  }
 
   return rnxStr;
Index: trunk/BNC/src/ephemeris.h
===================================================================
--- trunk/BNC/src/ephemeris.h	(revision 8789)
+++ trunk/BNC/src/ephemeris.h	(revision 8790)
@@ -134,5 +134,5 @@
   double  _L2Codes;         // Codes on L2 channel  (not valid for IRNSS)
   double  _TOEweek;
-  double  _L2PFlag;         // L2 P data flag (not valid for IRNSS)
+  double  _L2PFlag;         // L2 P data flag (not valid for IRNSS and QZSS)
 
   mutable double  _ura;     // SV accuracy
@@ -141,5 +141,5 @@
   double  _IODC;            // (not valid for IRNSS)
 
-  double  _TOT;             // Transmisstion time
+  double  _TOT;             // Transmission time
   double  _fitInterval;     // Fit interval (not valid for IRNSS)
 };
