Index: trunk/BNC/rinex/reqcedit.cpp
===================================================================
--- trunk/BNC/rinex/reqcedit.cpp	(revision 4228)
+++ trunk/BNC/rinex/reqcedit.cpp	(revision 4229)
@@ -45,4 +45,7 @@
 
 using namespace std;
+
+const double rnxV2 = 2.11;
+const double rnxV3 = 3.01;
 
 // Constructor
@@ -58,8 +61,8 @@
   int version     = settings.value("reqcRnxVersion").toInt();
   if (version < 3) {
-    _rnxVersion = 2.11;
+    _rnxVersion = rnxV2;
   }
   else {
-    _rnxVersion = 3.01;
+    _rnxVersion = rnxV3;
   }
   _samplingRate   = settings.value("reqcSampling").toInt();
@@ -298,8 +301,31 @@
   qStableSort(_ephs.begin(), _ephs.end(), t_eph::earlierTime);
 
+  // Check Satellite Systems
+  // -----------------------
+  bool haveGPS     = false;
+  bool haveGlonass = false;
+  for (int ii = 0; ii < _ephs.size(); ii++) {
+    const t_eph* eph = _ephs[ii];
+    if      (eph->type() == t_eph::GPS) {
+      haveGPS = true;
+    }
+    else if (eph->type() == t_eph::GLONASS) {
+      haveGlonass = true;
+    }
+  }
+
   // Initialize output navigation file
   // ---------------------------------
   t_rnxNavFile outNavFile(_outNavFileName, t_rnxNavFile::output);
-  outNavFile.setVersion(_rnxVersion);
+
+  outNavFile.setGlonass(haveGlonass);
+
+  if (haveGPS && haveGlonass) {
+    outNavFile.setVersion(rnxV3);
+  }
+  else {
+    outNavFile.setVersion(_rnxVersion);
+  }
+
   bncSettings settings;
   QMap<QString, QString> txtMap;
@@ -312,4 +338,5 @@
     txtMap["COMMENT"]  = comment;
   }
+
   outNavFile.writeHeader(&txtMap);
 
@@ -318,7 +345,5 @@
   for (int ii = 0; ii < _ephs.size(); ii++) {
     const t_eph* eph = _ephs[ii];
-    if (eph->type() == t_eph::GPS || _rnxVersion >= 3.0) {
-      outNavFile.writeEph(eph);
-    }
+    outNavFile.writeEph(eph);
   }
 }
Index: trunk/BNC/rinex/rnxnavfile.h
===================================================================
--- trunk/BNC/rinex/rnxnavfile.h	(revision 4228)
+++ trunk/BNC/rinex/rnxnavfile.h	(revision 4229)
@@ -58,4 +58,5 @@
   void   setVersion(double version) {_header._version = version;}
   bool   glonass() const {return _header._glonass;}
+  void   setGlonass(bool glo) {_header._glonass = glo;} 
   void   writeHeader(const QMap<QString, QString>* txtMap = 0);
   void   writeEph(const t_eph* eph);
