Index: trunk/sources/HeuristicLab.PluginInfrastructure/3.3/DefaultApplicationManager.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/3.3/DefaultApplicationManager.cs	(revision 5850)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/3.3/DefaultApplicationManager.cs	(revision 5903)
@@ -225,13 +225,11 @@
     }
 
-    internal static IEnumerable<Type> GetTypes(IEnumerable<Type> types, bool onlyInstantiable, bool allTypes) {
+    internal static IEnumerable<Type> GetTypes(IEnumerable<Type> types, bool onlyInstantiable, bool assignableToAllTypes) {
       IEnumerable<Type> result = GetTypes(types.First(), onlyInstantiable);
       foreach (Type type in types.Skip(1)) {
         IEnumerable<Type> discoveredTypes = GetTypes(type, onlyInstantiable);
-        if (allTypes) result = result.Intersect(discoveredTypes);
+        if (assignableToAllTypes) result = result.Intersect(discoveredTypes);
         else result = result.Union(discoveredTypes);
       }
-
-      if (!allTypes) return result.Distinct();
       return result;
     }
@@ -255,13 +253,11 @@
     }
 
-    internal static IEnumerable<Type> GetTypes(IEnumerable<Type> types, IPluginDescription pluginDescription, bool onlyInstantiable, bool allTypes) {
+    internal static IEnumerable<Type> GetTypes(IEnumerable<Type> types, IPluginDescription pluginDescription, bool onlyInstantiable, bool assignableToAllTypes) {
       IEnumerable<Type> result = GetTypes(types.First(), pluginDescription, onlyInstantiable);
       foreach (Type type in types.Skip(1)) {
         IEnumerable<Type> discoveredTypes = GetTypes(type, pluginDescription, onlyInstantiable);
-        if (allTypes) result = result.Intersect(discoveredTypes);
+        if (assignableToAllTypes) result = result.Intersect(discoveredTypes);
         else result = result.Union(discoveredTypes);
       }
-
-      if (!allTypes) return result.Distinct();
       return result;
     }
@@ -341,6 +337,6 @@
       return GetTypes(type, onlyInstantiable);
     }
-    IEnumerable<Type> IApplicationManager.GetTypes(IEnumerable<Type> types, bool onlyInstantiable, bool allTypes) {
-      return GetTypes(types, onlyInstantiable, allTypes);
+    IEnumerable<Type> IApplicationManager.GetTypes(IEnumerable<Type> types, bool onlyInstantiable, bool assignableToAllTypes) {
+      return GetTypes(types, onlyInstantiable, assignableToAllTypes);
     }
 
@@ -348,6 +344,6 @@
       return GetTypes(type, plugin, onlyInstantiable);
     }
-    IEnumerable<Type> IApplicationManager.GetTypes(IEnumerable<Type> types, IPluginDescription plugin, bool onlyInstantiable, bool allTypes) {
-      return GetTypes(types, plugin, onlyInstantiable, allTypes);
+    IEnumerable<Type> IApplicationManager.GetTypes(IEnumerable<Type> types, IPluginDescription plugin, bool onlyInstantiable, bool assignableToAllTypes) {
+      return GetTypes(types, plugin, onlyInstantiable, assignableToAllTypes);
     }
 
Index: trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Interfaces/IApplicationManager.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Interfaces/IApplicationManager.cs	(revision 5850)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Interfaces/IApplicationManager.cs	(revision 5903)
@@ -65,7 +65,7 @@
     /// <param name="types">The types to discover.</param>
     /// <param name="onlyInstantiable">Return only types that are instantiable (instance, abstract... are not returned)</param>
-    /// <param name="allTypes">Specifies if discovered types must implement or inherit all given <paramref name="types"/>.</param>
+    /// <param name="assignableToAllTypes">Specifies if discovered types must implement or inherit all given <paramref name="types"/>.</param>
     /// <returns>An enumerable of discovered types.</returns>
-    IEnumerable<Type> GetTypes(IEnumerable<Type> types, bool onlyInstantiable = true, bool allTypes = true);
+    IEnumerable<Type> GetTypes(IEnumerable<Type> types, bool onlyInstantiable = true, bool assignableToAllTypes = true);
 
     /// <summary>
@@ -84,7 +84,7 @@
     /// <param name="plugin">The declaring plugin.</param>
     /// <param name="onlyInstantiable">Return only types that are instantiable (instance, abstract... are not returned)</param>
-    /// /// <param name="allTypes">Specifies if discovered types must implement or inherit all given <paramref name="types"/>.</param>
+    /// /// <param name="assignableToAllTypes">Specifies if discovered types must implement or inherit all given <paramref name="types"/>.</param>
     /// <returns>An enumerable of discovered types.</returns>
-    IEnumerable<Type> GetTypes(IEnumerable<Type> types, IPluginDescription plugin, bool onlyInstantiable = true, bool allTypes = true);
+    IEnumerable<Type> GetTypes(IEnumerable<Type> types, IPluginDescription plugin, bool onlyInstantiable = true, bool assignableToAllTypes = true);
 
     /// <summary>
Index: trunk/sources/HeuristicLab.PluginInfrastructure/3.3/LightweightApplicationManager.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/3.3/LightweightApplicationManager.cs	(revision 5850)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/3.3/LightweightApplicationManager.cs	(revision 5903)
@@ -89,13 +89,11 @@
     /// (interfaces, abstract classes... are not returned)</remarks>
     /// <returns>Enumerable of the discovered types.</returns>
-    public IEnumerable<Type> GetTypes(IEnumerable<Type> types, bool onlyInstantiable = true, bool allTypes = true) {
+    public IEnumerable<Type> GetTypes(IEnumerable<Type> types, bool onlyInstantiable = true, bool assignableToAllTypes = true) {
       IEnumerable<Type> result = GetTypes(types.First(), onlyInstantiable);
       foreach (Type type in types.Skip(1)) {
         IEnumerable<Type> discoveredTypes = GetTypes(type, onlyInstantiable);
-        if (allTypes) result = result.Intersect(discoveredTypes);
+        if (assignableToAllTypes) result = result.Intersect(discoveredTypes);
         else result = result.Union(discoveredTypes);
       }
-
-      if (!allTypes) return result.Distinct();
       return result;
     }
@@ -194,5 +192,5 @@
     /// <returns></returns>
     /// <throws>NotSupportedException</throws>
-    public IEnumerable<Type> GetTypes(IEnumerable<Type> types, IPluginDescription plugin, bool onlyInstantiable = true, bool allTypes = true) {
+    public IEnumerable<Type> GetTypes(IEnumerable<Type> types, IPluginDescription plugin, bool onlyInstantiable = true, bool assignableToAllTypes = true) {
       throw new NotSupportedException("LightweightApplicationManager doesn't support type discovery for plugins.");
     }
