Index: /trunk/BNC/rinex/reqcedit.cpp
===================================================================
--- /trunk/BNC/rinex/reqcedit.cpp	(revision 3937)
+++ /trunk/BNC/rinex/reqcedit.cpp	(revision 3938)
@@ -53,4 +53,5 @@
   _obsFileNames   = settings.value("reqcObsFile").toString().split(",", QString::SkipEmptyParts);
   _outObsFileName = settings.value("reqcOutObsFile").toString();
+  _rnxVersion     = settings.value("reqcRnxVersion").toDouble();
 }
 
Index: /trunk/BNC/rinex/reqcedit.h
===================================================================
--- /trunk/BNC/rinex/reqcedit.h	(revision 3937)
+++ /trunk/BNC/rinex/reqcedit.h	(revision 3938)
@@ -50,4 +50,5 @@
   QVector<t_rnxObsFile*> _rnxObsFiles;
   QString                _outObsFileName;
+  double                 _rnxVersion;
 };
 
Index: /trunk/BNC/rinex/rnxobsfile.cpp
===================================================================
--- /trunk/BNC/rinex/rnxobsfile.cpp	(revision 3937)
+++ /trunk/BNC/rinex/rnxobsfile.cpp	(revision 3938)
@@ -643,11 +643,29 @@
   }
 
-  QString hlp;
-  QTextStream(&hlp) << QString("%1").arg(_header._obsTypesV2.size(), 6);
-  for (unsigned ii = 0; ii < _header._obsTypesV2.size(); ii++) {
-    QTextStream(&hlp) << QString("%1").arg(_header._obsTypesV2[ii], 6);   
-    if (ii > 0 && (ii % 8 == 0 || ii == _header._obsTypesV2.size()-1)) {
-      *_stream << hlp.leftJustified(60) << "# / TYPES OF OBSERV\n";
-      hlp = QString().leftJustified(6);
+  if (_header._version < 3.0) {
+    QString hlp;
+    QTextStream(&hlp) << QString("%1").arg(_header._obsTypesV2.size(), 6);
+    for (unsigned ii = 0; ii < _header._obsTypesV2.size(); ii++) {
+      QTextStream(&hlp) << QString("%1").arg(_header._obsTypesV2[ii], 6);   
+      if (ii > 0 && (ii % 8 == 0 || ii == _header._obsTypesV2.size()-1)) {
+        *_stream << hlp.leftJustified(60) << "# / TYPES OF OBSERV\n";
+        hlp = QString().leftJustified(6);
+      }
+    }
+  }
+  else {
+    map<char, vector<QString> >::const_iterator it;
+    for (it = _header._obsTypesV3.begin(); it != _header._obsTypesV3.end(); it++) {
+      char sys                     = it->first;
+      const vector<QString>& types = it->second;
+      QString hlp;
+      QTextStream(&hlp) << QString("%1").arg(types.size(), 6);
+      for (unsigned ii = 0; ii < types.size(); ii++) {
+        QTextStream(&hlp) << QString("%1").arg(types[ii], 6);   
+        if (ii > 0 && (ii % 8 == 0 || ii == types.size()-1)) {
+          *_stream << hlp.leftJustified(60) << "SYS / # / OBS TYPES\n";
+          hlp = QString().leftJustified(6);
+        }
+      }
     }
   }
