Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineCovarianceEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineCovarianceEvaluator.cs	(revision 5903)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineCovarianceEvaluator.cs	(revision 5904)
@@ -55,9 +55,9 @@
 
     public void Add(double original, double estimated) {
-      if (double.IsNaN(estimated) || double.IsInfinity(estimated) || double.IsNaN(original) || double.IsInfinity(original)) {
+      if (double.IsNaN(estimated) || double.IsInfinity(estimated) || double.IsNaN(original) || double.IsInfinity(original) || (errorState & OnlineEvaluatorError.InvalidValueAdded) > 0) {
         errorState = errorState | OnlineEvaluatorError.InvalidValueAdded;
-      } else if (!errorState.HasFlag(OnlineEvaluatorError.InvalidValueAdded)) {
+      } else {
         n++;
-        errorState = OnlineEvaluatorError.None;        // n >= 1
+        errorState = errorState & (~OnlineEvaluatorError.InsufficientElementsAdded);        // n >= 1
 
         // online calculation of tMean
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineMeanAbsolutePercentageErrorEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineMeanAbsolutePercentageErrorEvaluator.cs	(revision 5903)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineMeanAbsolutePercentageErrorEvaluator.cs	(revision 5904)
@@ -58,8 +58,8 @@
         original.IsAlmost(0.0)) {
         errorState = errorState | OnlineEvaluatorError.InvalidValueAdded;
-      } else if (!errorState.HasFlag(OnlineEvaluatorError.InvalidValueAdded)) {
+      } else {
         sre += Math.Abs((estimated - original) / original);
         n++;
-        errorState = OnlineEvaluatorError.None; // n >= 1
+        errorState = errorState & (~OnlineEvaluatorError.InsufficientElementsAdded);        // n >= 1
       }
     }
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineMeanAndVarianceCalculator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineMeanAndVarianceCalculator.cs	(revision 5903)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineMeanAndVarianceCalculator.cs	(revision 5904)
@@ -74,8 +74,8 @@
 
     public void Add(double x) {
-      if (double.IsNaN(x) || double.IsInfinity(x)) {
+      if (double.IsNaN(x) || double.IsInfinity(x) || (errorState & OnlineEvaluatorError.InvalidValueAdded) > 0) {
         errorState = errorState | OnlineEvaluatorError.InvalidValueAdded;
         varianceErrorState = errorState | OnlineEvaluatorError.InvalidValueAdded;
-      } else if (!errorState.HasFlag(OnlineEvaluatorError.InvalidValueAdded)) {
+      } else {
         n++;
         // See Knuth TAOCP vol 2, 3rd edition, page 232
@@ -83,7 +83,7 @@
           m_oldM = m_newM = x;
           m_oldS = 0.0;
-          errorState = OnlineEvaluatorError.None; // n >= 1
+          errorState = errorState & (~OnlineEvaluatorError.InsufficientElementsAdded);        // n >= 1
         } else {
-          varianceErrorState = OnlineEvaluatorError.None; // n >= 1
+          varianceErrorState = varianceErrorState & (~OnlineEvaluatorError.InsufficientElementsAdded);        // n >= 2
           m_newM = m_oldM + (x - m_oldM) / n;
           m_newS = m_oldS + (x - m_oldM) * (x - m_newM);
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineMeanSquaredErrorEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineMeanSquaredErrorEvaluator.cs	(revision 5903)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineMeanSquaredErrorEvaluator.cs	(revision 5904)
@@ -54,11 +54,11 @@
     public void Add(double original, double estimated) {
       if (double.IsNaN(estimated) || double.IsInfinity(estimated) ||
-          double.IsNaN(original) || double.IsInfinity(original)) {
+          double.IsNaN(original) || double.IsInfinity(original) || (errorState & OnlineEvaluatorError.InvalidValueAdded) > 0) {
         errorState = errorState | OnlineEvaluatorError.InvalidValueAdded;
-      } else if (!errorState.HasFlag(OnlineEvaluatorError.InvalidValueAdded)) {
+      } else {
         double error = estimated - original;
         sse += error * error;
         n++;
-        errorState = OnlineEvaluatorError.None; // n >= 1
+        errorState = errorState & (~OnlineEvaluatorError.InsufficientElementsAdded);        // n >= 1
       }
     }
