Index: /trunk/BNC/src/bnccaster.cpp
===================================================================
--- /trunk/BNC/src/bnccaster.cpp	(revision 9018)
+++ /trunk/BNC/src/bnccaster.cpp	(revision 9019)
@@ -596,24 +596,24 @@
   }
 
-  QMap<t_prn, double>& hlpMap = _lockTimeMap[obs._staID];
-  QMap<t_prn, double>::const_iterator it = hlpMap.find(obs._prn);
-  if (it == hlpMap.end()) {
-    hlpMap[obs._prn] = minLockTime;
-    for (unsigned ii = 0; ii < obs._obs.size(); ii++) {
-      t_frqObs* frqObs = obs._obs[ii];
-      frqObs->_slipCounter = 0;
-    }
+  QMap<t_prn, double>& ltMap = _lockTimeMap[obs._staID];
+  QMap<t_prn, int>&    jcMap = _jumpCounterMap[obs._staID];
+
+  QMap<t_prn, double>::const_iterator it = ltMap.find(obs._prn);
+  if (it == ltMap.end()) {
+    ltMap[obs._prn] = minLockTime;
+    jcMap[obs._prn] = 0;
   }
   else {
-    if (hlpMap[obs._prn] < minLockTime) {
-      hlpMap[obs._prn] = minLockTime;
-      for (unsigned ii = 0; ii < obs._obs.size(); ii++) {
-        t_frqObs* frqObs = obs._obs[ii];
-        frqObs->_slipCounter += 1;
-        if (frqObs->_slipCounter > 9999) {
-          frqObs->_slipCounter = 0;
-        }
-      }
-    }
-  }
-}
+    if (ltMap[obs._prn] < minLockTime) {
+      ltMap[obs._prn] = minLockTime;
+      jcMap[obs._prn] += 1;
+      if (jcMap[obs._prn] > 9999) {
+        jcMap[obs._prn] = 0;
+      }
+    }
+  }
+  for (unsigned ii = 0; ii < obs._obs.size(); ii++) {
+    t_frqObs* frqObs = obs._obs[ii];
+    frqObs->_slipCounter = jcMap[obs._prn]; 
+  }
+}
Index: /trunk/BNC/src/bnccaster.h
===================================================================
--- /trunk/BNC/src/bnccaster.h	(revision 9018)
+++ /trunk/BNC/src/bnccaster.h	(revision 9019)
@@ -89,4 +89,5 @@
    QList<QTcpSocket*>*             _miscSockets;
    QMap<std::string, QMap<t_prn, double> > _lockTimeMap;
+   QMap<std::string, QMap<t_prn, int> >    _jumpCounterMap;
 };
 
