Index: trunk/BNC/src/bncrinex.cpp
===================================================================
--- trunk/BNC/src/bncrinex.cpp	(revision 7664)
+++ trunk/BNC/src/bncrinex.cpp	(revision 7665)
@@ -163,7 +163,6 @@
     if (query->status() == bncNetQuery::finished &&
         outData.contains("END OF HEADER")) {
-      irc = success;
       QTextStream in(outData);
-      _sklHeader.read(&in);
+      irc = _sklHeader.read(&in);
     }
 
@@ -184,7 +183,8 @@
   QFile skl(_sklName);
   if ( skl.exists() && skl.open(QIODevice::ReadOnly) ) {
-    readDone = true;
     QTextStream in(&skl);
-    _sklHeader.read(&in);
+    if (_sklHeader.read(&in) == success) {
+      readDone = true;
+    }
   }
 
Index: trunk/BNC/src/rinex/rnxobsfile.cpp
===================================================================
--- trunk/BNC/src/rinex/rnxobsfile.cpp	(revision 7664)
+++ trunk/BNC/src/rinex/rnxobsfile.cpp	(revision 7665)
@@ -63,4 +63,6 @@
     _wlFactorsL2[iPrn] = 1;
   }
+  bncSettings settings;
+  _writeRinexOnlyWithSklObsTypes = settings.value("rnxOnlyWithSKL").toBool();
 }
 
@@ -278,5 +280,10 @@
   // ----------------------------------------------------
   if (_obsTypes.empty()) {
-    setDefault(_markerName, _version);
+    if (!_writeRinexOnlyWithSklObsTypes) {
+      setDefault(_markerName, _version);
+    }
+    else {
+      return failure;
+    }
   }
 
Index: trunk/BNC/src/rinex/rnxobsfile.h
===================================================================
--- trunk/BNC/src/rinex/rnxobsfile.h	(revision 7664)
+++ trunk/BNC/src/rinex/rnxobsfile.h	(revision 7665)
@@ -97,4 +97,6 @@
   int                     _wlFactorsL2[t_prn::MAXPRN_GPS+1];
   bncTime                 _startTime;
+  bool                    _writeRinexOnlyWithSklObsTypes;
+
   QMap<QString, QPair<double, QStringList> > _phaseShifts;
 };
