Index: trunk/BNC/src/PPP/ambres.cpp
===================================================================
--- trunk/BNC/src/PPP/ambres.cpp	(revision 10791)
+++ trunk/BNC/src/PPP/ambres.cpp	(revision 10792)
@@ -235,6 +235,8 @@
   int numSdAmbs   = 0;
   int numFixSdAll = 0;
+  bool enoughAmbs = false;
   for (const AmbGroup& ambGroup : _ambGroups) {
     numSdAmbs += ambGroup._zdAmbs.size() - 1;
+    int numFixSdGrp = 0;
     for (const ZdAmb& zdAmb : ambGroup._zdAmbs) {
       int idx = zdAmb.index();
@@ -242,4 +244,5 @@
         if (ambGroup._zdAmbRef->indexGlobal() != zdAmb.indexGlobal()) {
           numFixSdAll += 1;
+          numFixSdGrp += 1;
         }
         RowVector* pCC;
@@ -251,9 +254,10 @@
       }
     }
-  }
-  if (CC.size() > 0) {
+    if (numFixSdGrp >= OPT->_ar._minNumSat-1) {
+      enoughAmbs = true;
+    }
+  }
+  if (enoughAmbs) {
     kalman(CC, cc, Sc, QFinal, xFinal);
-  }
-  if (numSdAmbs > 0) {
     fixRatio = double(numFixSdAll) / double(numSdAmbs);
   }
