Index: trunk/BNC/rinex/rnxobsfile.cpp
===================================================================
--- trunk/BNC/rinex/rnxobsfile.cpp	(revision 3859)
+++ trunk/BNC/rinex/rnxobsfile.cpp	(revision 3864)
@@ -142,11 +142,16 @@
     }
     else if (key == "# / TYPES OF OBSERV") {
-      QTextStream in(value.toAscii(), QIODevice::ReadOnly);
+      QTextStream* in = new QTextStream(value.toAscii(), QIODevice::ReadOnly);
       int nTypes;
-      in >> nTypes;
+      *in >> nTypes;
       _obsTypesV2.clear();
       for (int ii = 0; ii < nTypes; ii++) {
+        if (ii > 0 && ii % 9 == 0) {
+          line = stream->readLine(); ++numLines;
+          delete in;
+          in = new QTextStream(line.toAscii(), QIODevice::ReadOnly);
+        }
         QString hlp;
-        in >> hlp;
+        *in >> hlp;
         _obsTypesV2.push_back(hlp);
       }
@@ -598,10 +603,12 @@
 
   QString hlp;
+  QTextStream(&hlp) << QString("%1").arg(_header._obsTypesV2.size(), 6);
   for (unsigned ii = 0; ii < _header._obsTypesV2.size(); ii++) {
-    hlp += QString("%1").arg(_header._obsTypesV2[ii], 6);
-  }
-  *_stream << (QString("%1").arg(_header._obsTypesV2.size(),6) + hlp)
-    .leftJustified(60)
-          << "# / TYPES OF OBSERV\n";
+    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().leftJusified(6);
+    }
+  }
 
   *_stream << QString("%1")
