Index: /trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp
===================================================================
--- /trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp	(revision 10571)
+++ /trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp	(revision 10572)
@@ -239,4 +239,8 @@
                             + _clkOrb.NumberOfSat[CLOCKORBIT_SATBDS];
     ii++) {
+    if (corrIsOutOfRange(_clkOrb.Sat[ii])) {
+      emit newMessage("RTCM3coDecoder: Correction out of range "  + _staID.toLatin1(), true);
+      continue;
+    }
     char sysCh = ' ';
     int flag = 0;
@@ -576,4 +580,22 @@
 }
 
+// Check corrections
+////////////////////////////////////////////////////////////////////////////
+bool RTCM3coDecoder::corrIsOutOfRange(const SsrCorr::ClockOrbit::SatData& coSat) {
+
+  if (fabs(coSat.Clock.DeltaA0) > 209.7151)   {return true;}
+  if (fabs(coSat.Clock.DeltaA1) > 1.048575)   {return true;}
+  if (fabs(coSat.Clock.DeltaA2) > 1.34217726) {return true;}
+
+  if (fabs(coSat.Orbit.DeltaRadial)     > 209.7151) {return true;}
+  if (fabs(coSat.Orbit.DeltaAlongTrack) > 209.7148) {return true;}
+  if (fabs(coSat.Orbit.DeltaCrossTrack) > 209.7148) {return true;}
+
+  if (fabs(coSat.Orbit.DotDeltaRadial)     > 1.048575) {return true;}
+  if (fabs(coSat.Orbit.DotDeltaAlongTrack) > 1.048572) {return true;}
+  if (fabs(coSat.Orbit.DotDeltaCrossTrack) > 1.048572) {return true;}
+  return false;
+}
+
 //
 ////////////////////////////////////////////////////////////////////////////
Index: /trunk/BNC/src/RTCM3/RTCM3coDecoder.h
===================================================================
--- /trunk/BNC/src/RTCM3/RTCM3coDecoder.h	(revision 10571)
+++ /trunk/BNC/src/RTCM3/RTCM3coDecoder.h	(revision 10572)
@@ -67,4 +67,5 @@
   void reopen();
   void checkProviderID();
+  bool corrIsOutOfRange(const SsrCorr::ClockOrbit::SatData& coSat);
 
   std::ofstream*                        _out;
