Index: trunk/BNC/bncmodel.cpp
===================================================================
--- trunk/BNC/bncmodel.cpp	(revision 3405)
+++ trunk/BNC/bncmodel.cpp	(revision 3406)
@@ -1326,5 +1326,7 @@
     ColumnVector    dx;
 
-    do {
+    unsigned numOutliers = 0;
+
+    for (;;) {
 
       // Bancroft Solution
@@ -1449,6 +1451,20 @@
       }
     
-    } while (outlierDetection(iPhase, QQsav, vv, epoData->satDataGPS, 
-                              epoData->satDataGlo, epoData->satDataGal) != 0);
+      if (outlierDetection(iPhase, QQsav, vv, epoData->satDataGPS, 
+                           epoData->satDataGlo, epoData->satDataGal) == 0) {
+        break;
+      }
+      else {
+        ++numOutliers;
+      }
+
+      if (numOutliers > 1) {
+        restoreState();
+        _log += "bncModel::update_p: too many outliers\n";
+        emit newMessage(_log, false);
+        return failure;
+      }
+
+    }
 
     // Update Parameters
