Index: branches/HeuristicLab.MetaOptimization (trunk integration)/HeuristicLab.Problems.MetaOptimization/3.3/Evaluators/AlgorithmRunsAnalyzer.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization (trunk integration)/HeuristicLab.Problems.MetaOptimization/3.3/Evaluators/AlgorithmRunsAnalyzer.cs	(revision 8576)
+++ branches/HeuristicLab.MetaOptimization (trunk integration)/HeuristicLab.Problems.MetaOptimization/3.3/Evaluators/AlgorithmRunsAnalyzer.cs	(revision 8589)
@@ -182,11 +182,16 @@
           run.Name = string.Format("{0} Problem {1} Run {2}", parameterConfiguration.ParameterInfoString, problemIndex, repetitionIndex);
 
-          qualities[problemIndex][repetitionIndex] = GetResultValue<DoubleValue>(run.Results, qualityMeasureName).Value;
-          executionTimes[problemIndex][repetitionIndex] = (((TimeSpanValue)run.Results["Execution Time"]).Value);
-          if (run.Results.ContainsKey("EvaluatedSolutions")) {
-            evaluatedSolutions[problemIndex][repetitionIndex] = (((IntValue)run.Results["EvaluatedSolutions"]).Value);
-          } else {
-            evaluatedSolutions[problemIndex][repetitionIndex] = 1;
-          }
+          DoubleValue quality;
+          if (TryGetResultValue(run.Results, qualityMeasureName, out quality))
+            qualities[problemIndex][repetitionIndex] = quality.Value;
+
+          TimeSpanValue execTime;
+          if (TryGetResultValue(run.Results, "Execution Time", out execTime))
+            executionTimes[problemIndex][repetitionIndex] = execTime.Value;
+
+          IntValue evalSolutions;
+          if (TryGetResultValue(run.Results, "EvaluatedSolutions", out evalSolutions))
+            evaluatedSolutions[problemIndex][repetitionIndex] = evalSolutions.Value;
+
           runs.Add(run);
         }
@@ -236,28 +241,27 @@
 
       // in OSGA there are more subscopes, so be careful which to delete
-      CurrentScope.SubScopes.RemoveAll(x => x.Variables.Count((v) => (v.Name == "RepetitionCount")) == 1);
+      CurrentScope.SubScopes.RemoveAll(x => x.Variables.Count(v => (v.Name == "RepetitionCount")) == 1);
 
       return base.Apply();
     }
 
-    private T1 GetResultValue<T1>(IDictionary<string, IItem> results, string resultName) {
-      return (T1)results[resultName];
-
-      //string separator = ".";
-      //string[] tokens = resultName.Split(separator.ToCharArray());
-
-      //IDictionary<string, IItem> currentResults = results;
-      //IItem currentResult = null;
-      //for (int i = 0; i < tokens.Length; i++) {
-      //  if(currentResults == null)
-      //    throw new KeyNotFoundException("Result value " + resultName + " was not found");
-      //  if (currentResults.ContainsKey(tokens[i])) {
-      //    currentResult = currentResults[tokens[i]];
-      //    currentResults = currentResult as IDictionary<string, IItem>;
-      //  } else {
-      //    throw new KeyNotFoundException("Result value " + resultName + " was not found");
-      //  }
-      //}
-      //return (T1)currentResult;
+    private bool TryGetResultValue<T>(IDictionary<string, IItem> results, string resultName, out T resultValue) {
+      IDictionary<string, IItem> currentResults = results;
+      string[] tokens = resultName.Split('.');
+      T currentResultValue = default(T);
+      bool found = true;
+
+      foreach (var token in tokens) {
+        if (currentResults != null && currentResults.ContainsKey(token)) {
+          currentResultValue = (T)currentResults[token];
+          currentResults = currentResultValue as IDictionary<string, IItem>;
+        } else {
+          found = false;
+          break;
+        }
+      }
+
+      resultValue = found ? currentResultValue : default(T);
+      return found;
     }
 
Index: branches/HeuristicLab.MetaOptimization (trunk integration)/HeuristicLab.Problems.MetaOptimization/3.3/MetaOptimizationUtil.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization (trunk integration)/HeuristicLab.Problems.MetaOptimization/3.3/MetaOptimizationUtil.cs	(revision 8576)
+++ branches/HeuristicLab.MetaOptimization (trunk integration)/HeuristicLab.Problems.MetaOptimization/3.3/MetaOptimizationUtil.cs	(revision 8589)
@@ -74,4 +74,5 @@
         qualityDeviationsNormalized[i] = parameterConfigurationTree.QualityStandardDeviations[i] / referenceQualityDeviations[i];
         evaluatedSolutionAveragesNormalized[i] = parameterConfigurationTree.AverageEvaluatedSolutions[i] / referenceEvaluatedSolutionAverages[i];
+        if (double.IsNaN(evaluatedSolutionAveragesNormalized[i])) evaluatedSolutionAveragesNormalized[i] = 0.0;
       }
       parameterConfigurationTree.NormalizedQualityAverages = new DoubleArray(qualityAveragesNormalized);
