Index: trunk/BNC/src/ephemeris.cpp
===================================================================
--- trunk/BNC/src/ephemeris.cpp	(revision 9773)
+++ trunk/BNC/src/ephemeris.cpp	(revision 9774)
@@ -164,8 +164,8 @@
         break;
       case D1:
-        navTypeString = epochStart + ephStr + "D1" + eolStr;
+        navTypeString = epochStart + ephStr + "D1  " + eolStr;
         break;
       case D2:
-        navTypeString = epochStart + ephStr + "D2" + eolStr;
+        navTypeString = epochStart + ephStr + "D2  " + eolStr;
         break;
       case SBASL1:
@@ -1530,4 +1530,30 @@
 }
 
+// Health status of SBAS Ephemeris (virtual)
+////////////////////////////////////////////////////////////////////////////
+unsigned int t_ephSBAS::isUnhealthy() const {
+
+  // Bit 5
+  bool URAindexIs15 = (int(_health) & (1<<5));
+  if (URAindexIs15) {
+    // in this case it is recommended
+    // to set the bits 0,1,2,3 to 1 (MT17health = 15)
+    return 1;
+  }
+
+  // Bit 0-3
+  int   MT17health = (int(_health)) & (0x0f);
+  if (MT17health) {
+    return 1;
+  }
+
+  // Bit 4
+  //  bool MT17HealthIsUnavailable = (int(_health) & (1<<4));
+  //  is not used because the MT17health bits can be independently set if URA index is 15
+
+  return 0;
+}
+
+
 // RINEX Format String
 //////////////////////////////////////////////////////////////////////////////
Index: trunk/BNC/src/ephemeris.h
===================================================================
--- trunk/BNC/src/ephemeris.h	(revision 9773)
+++ trunk/BNC/src/ephemeris.h	(revision 9774)
@@ -387,5 +387,5 @@
   virtual e_type  type() const {return t_eph::SBAS;}
   virtual unsigned int IOD() const;
-  virtual unsigned int  isUnhealthy() const { return static_cast<unsigned int>(_health); }
+  virtual unsigned int  isUnhealthy() const;
   virtual QString toString(double version) const;
 
