Index: /branches/BNC_2.12/src/combination/bnccomb.cpp
===================================================================
--- /branches/BNC_2.12/src/combination/bnccomb.cpp	(revision 9179)
+++ /branches/BNC_2.12/src/combination/bnccomb.cpp	(revision 9180)
@@ -733,6 +733,4 @@
 
   QString     outLines;
-  //QStringList corrLines;
-
   unsigned year, month, day, hour, minute;
   double   sec;
@@ -808,6 +806,4 @@
                  corr->_orbCorr._dotXr[2],
                  0.0);
-    //corrLines << line;
-
     delete corr;
   }
Index: /branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp
===================================================================
--- /branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp	(revision 9179)
+++ /branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp	(revision 9180)
@@ -604,8 +604,10 @@
         t_irc irc = processSatellite(eph, epoTime.gpsw(), epoTime.gpssec(), prnStr, rtnAPC,
                                      rtnUra, rtnClk, rtnVel, rtnCoM, rtnClkSig, sd, outLine);
-        if (irc != success) {
+        if (irc != success) {/*
           // very few cases: check states bad and unhealthy are excluded earlier
           sd->ID = prnStr.mid(1).toInt(); // to prevent G00, R00 entries
           sd->IOD = eph->IOD();
+          */
+          continue;
         }
       }
@@ -996,9 +998,13 @@
     sd->Orbit.DotDeltaAlongTrack = dotRsw(2);
     sd->Orbit.DotDeltaCrossTrack = dotRsw(3);
+
+    if (corrIsOutOfRange(sd)) {
+      return failure;
+    }
   }
 
   outLine.sprintf("%d %.1f %s  %u  %10.3f %8.3f %8.3f  %8.3f %8.3f %8.3f\n", GPSweek,
       GPSweeks, eph->prn().toString().c_str(), eph->IOD(), dClkA0, dClkA1, dClkA2,
-      rsw(1), rsw(2), rsw(3));
+      rsw(1), rsw(2), rsw(3));  //fprintf(stderr, "%s\n", outLine.toStdString().c_str());
 
   // RTNET full clock for RINEX and SP3 file
@@ -1153,2 +1159,19 @@
   return 2;  // default
 }
+
+bool bncRtnetUploadCaster::corrIsOutOfRange(struct SsrCorr::ClockOrbit::SatData* sd) {
+
+  if (fabs(sd->Clock.DeltaA0) > 209.7151)   {return true;}
+  if (fabs(sd->Clock.DeltaA1) > 1.048575)   {return true;}
+  if (fabs(sd->Clock.DeltaA2) > 1.34217726) {return true;}
+
+  if (fabs(sd->Orbit.DeltaRadial)     > 209.7151) {return true;}
+  if (fabs(sd->Orbit.DeltaAlongTrack) > 209.7148) {return true;}
+  if (fabs(sd->Orbit.DeltaCrossTrack) > 209.7148) {return true;}
+
+  if (fabs(sd->Orbit.DotDeltaRadial)     > 1.048575) {return true;}
+  if (fabs(sd->Orbit.DotDeltaAlongTrack) > 1.048572) {return true;}
+  if (fabs(sd->Orbit.DotDeltaCrossTrack) > 1.048572) {return true;}
+
+  return false;
+}
Index: /branches/BNC_2.12/src/upload/bncrtnetuploadcaster.h
===================================================================
--- /branches/BNC_2.12/src/upload/bncrtnetuploadcaster.h	(revision 9179)
+++ /branches/BNC_2.12/src/upload/bncrtnetuploadcaster.h	(revision 9180)
@@ -39,4 +39,7 @@
                         struct SsrCorr::ClockOrbit::SatData* sd,
                         QString& outLine);
+
+  bool corrIsOutOfRange(struct SsrCorr::ClockOrbit::SatData* sd);
+
   void crdTrafo(int GPSWeek, ColumnVector& xyz, double& dc);
 
