Index: trunk/BNC/src/bncantex.cpp
===================================================================
--- trunk/BNC/src/bncantex.cpp	(revision 10947)
+++ trunk/BNC/src/bncantex.cpp	(revision 10948)
@@ -409,11 +409,34 @@
   if (psiRate > MAX_YAW_RATE) {
     if (!st.valid || (Mjd - st.lastMjd) > MAX_FREEZE_AGE) {
+      if (st.valid) { // i.e. it was the staleness bound, not cold-start
+        _glonassYawLog += QString().asprintf(
+          "%s glonassYaw STALE-RESET  Mjd=%.6f beta=%6.3f mu=%7.2f rate=%6.3f"
+          " old=%7.2f new=%7.2f age=%.1fmin\n",
+          prn.toLatin1().data(), Mjd, beta*180.0/M_PI, mu*180.0/M_PI,
+          psiRate*180.0/M_PI, st.yaw*180.0/M_PI, psiNom*180.0/M_PI,
+          (Mjd-st.lastMjd)*1440.0);
+      }
       st.yaw     = psiNom; // no prior history, or it is too old to trust
       st.lastMjd = Mjd;
       st.valid   = true;
     }
+    if (!st.fixed) {
+      _glonassYawLog += QString().asprintf(
+        "%s glonassYaw FIXED-ENTER  Mjd=%.6f beta=%6.3f mu=%7.2f rate=%6.3f yaw=%7.2f\n",
+        prn.toLatin1().data(), Mjd, beta*180.0/M_PI, mu*180.0/M_PI,
+        psiRate*180.0/M_PI, st.yaw*180.0/M_PI);
+      st.fixed = true;
+    }
     psiEff = st.yaw;    // hold the frozen yaw angle
   }
   else {
+    if (st.fixed) {
+      _glonassYawLog += QString().asprintf(
+        "%s glonassYaw FIXED-EXIT   Mjd=%.6f beta=%6.3f mu=%7.2f rate=%6.3f"
+        " frozen=%7.2f nominal=%7.2f\n",
+        prn.toLatin1().data(), Mjd, beta*180.0/M_PI, mu*180.0/M_PI,
+        psiRate*180.0/M_PI, st.yaw*180.0/M_PI, psiNom*180.0/M_PI);
+      st.fixed = false;
+    }
     st.yaw     = psiNom;
     st.lastMjd = Mjd;
