Index: stable/HeuristicLab.Operators/3.3/DataReducer.cs
===================================================================
--- stable/HeuristicLab.Operators/3.3/DataReducer.cs	(revision 10032)
+++ stable/HeuristicLab.Operators/3.3/DataReducer.cs	(revision 10294)
@@ -69,15 +69,18 @@
     public override IOperation Apply() {
       var values = ParameterToReduce.ActualValue;
-      if (values.Count() > 0) {
-        if (values.All(x => typeof(IntValue).IsAssignableFrom(x.GetType()))) {
-          CalculateResult(values.OfType<IntValue>().Select(x => x.Value), values.First().GetType());
-        } else if (values.All(x => typeof(DoubleValue).IsAssignableFrom(x.GetType()))) {
-          CalculateResult(values.OfType<DoubleValue>().Select(x => x.Value), values.First().GetType());
-        } else if (values.All(x => typeof(TimeSpanValue).IsAssignableFrom(x.GetType()))) {
-          CalculateResult(values.OfType<TimeSpanValue>().Select(x => x.Value), values.First().GetType());
-        } else {
-          throw new ArgumentException(string.Format("Type {0} is not supported by the DataReducer.", values.First().GetType()));
-        }
-      }
+      if (!values.Any()) return base.Apply();
+
+      if (values.All(x => x is IntValue)) {
+        CalculateResult(values.OfType<IntValue>().Select(x => x.Value), values.First().GetType());
+      } else if (values.All(x => x is DoubleValue)) {
+        CalculateResult(values.OfType<DoubleValue>().Select(x => x.Value), values.First().GetType());
+      } else if (values.All(x => x is TimeSpanValue)) {
+        CalculateResult(values.OfType<TimeSpanValue>().Select(x => x.Value), values.First().GetType());
+      } else if (values.All(x => x is BoolValue)) {
+        CalculateResult(values.OfType<BoolValue>().Select(x => x.Value), values.First().GetType());
+      } else {
+        throw new ArgumentException(string.Format("Type {0} is not supported by the DataReducer.", values.First().GetType()));
+      }
+
       return base.Apply();
     }
@@ -246,4 +249,29 @@
         case ReductionOperations.Assign:
           target = InitializeTarget<TimeSpanValue, TimeSpan>(targetType, new TimeSpan());
+          target.Value = result;
+          break;
+        default:
+          throw new InvalidOperationException(string.Format("Operation {0} is not supported as TargetOperation for type: {1}.", TargetOperation.Value.Value, targetType));
+      }
+    }
+    #endregion
+    #region bool reduction
+    private void CalculateResult(IEnumerable<bool> values, Type targetType) {
+      bool result;
+      switch (ReductionOperation.Value.Value) {
+        case ReductionOperations.All:
+          result = values.All(x => x);
+          break;
+        case ReductionOperations.Any:
+          result = values.Any(x => x);
+          break;
+        default:
+          throw new InvalidOperationException(string.Format("Operation {0} is not supported as ReductionOperation for type: {1}.", ReductionOperation.Value.Value, targetType));
+      }
+
+      BoolValue target;
+      switch (TargetOperation.Value.Value) {
+        case ReductionOperations.Assign:
+          target = InitializeTarget<BoolValue, bool>(targetType, true);
           target.Value = result;
           break;
Index: stable/HeuristicLab.Operators/3.3/HeuristicLab.Operators-3.3.csproj
===================================================================
--- stable/HeuristicLab.Operators/3.3/HeuristicLab.Operators-3.3.csproj	(revision 10032)
+++ stable/HeuristicLab.Operators/3.3/HeuristicLab.Operators-3.3.csproj	(revision 10294)
@@ -126,5 +126,4 @@
     <Compile Include="Plugin.cs" />
     <Compile Include="ReductionOperation.cs" />
-    <Compile Include="ReductionOperations.cs" />
     <Compile Include="ScopeCleaner.cs" />
     <Compile Include="StochasticBranch.cs" />
Index: stable/HeuristicLab.Operators/3.3/ReductionOperation.cs
===================================================================
--- stable/HeuristicLab.Operators/3.3/ReductionOperation.cs	(revision 10032)
+++ stable/HeuristicLab.Operators/3.3/ReductionOperation.cs	(revision 10294)
@@ -27,4 +27,16 @@
 
 namespace HeuristicLab.Operators {
+  public enum ReductionOperations {
+    Sum,
+    Product,
+    Count,
+    Min,
+    Max,
+    Avg,
+    Assign,
+    All,
+    Any
+  }
+
   [Item("ReductionOperation", "Represents a certain type of reduction operation.")]
   [StorableClass]
Index: stable/HeuristicLab.Operators/3.3/ReductionOperations.cs
===================================================================
--- stable/HeuristicLab.Operators/3.3/ReductionOperations.cs	(revision 10032)
+++ 	(revision )
@@ -1,32 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-namespace HeuristicLab.Operators {
-  public enum ReductionOperations {
-    Sum,
-    Product,
-    Count,
-    Min,
-    Max,
-    Avg,
-    Assign
-  }
-}
