Index: trunk/sources/HeuristicLab.Constraints/AllSubOperatorsTypeConstraintView.cs
===================================================================
--- trunk/sources/HeuristicLab.Constraints/AllSubOperatorsTypeConstraintView.cs	(revision 349)
+++ trunk/sources/HeuristicLab.Constraints/AllSubOperatorsTypeConstraintView.cs	(revision 430)
@@ -87,6 +87,5 @@
     #endregion
 
-    #region Drag Events   
-
+    #region Drag Events
     private void listView_DragDrop(object sender, DragEventArgs e) {
       if(e.Effect != DragDropEffects.None) {
@@ -105,5 +104,4 @@
     }
 
-
     private void listView_DragEnter(object sender, DragEventArgs e) {
       this.FindForm().BringToFront();
@@ -117,5 +115,4 @@
       }
     }
-
 
     private void listView_DragOver(object sender, DragEventArgs e) {
Index: trunk/sources/HeuristicLab.Constraints/SubOperatorsConstraintAnalyser.cs
===================================================================
--- trunk/sources/HeuristicLab.Constraints/SubOperatorsConstraintAnalyser.cs	(revision 349)
+++ trunk/sources/HeuristicLab.Constraints/SubOperatorsConstraintAnalyser.cs	(revision 430)
@@ -91,11 +91,7 @@
     private static bool InSet(IOperator op, ICollection<IOperator> set) {
       foreach(IOperator element in set) {
-        if(element==op ||
-          ((StringData)element.GetVariable("TypeId").Value).Data ==
-          ((StringData)op.GetVariable("TypeId").Value).Data) {
+        if(element == op)
           return true;
-        }
       }
-
       return false;
     }
@@ -132,5 +128,5 @@
         }
       }
-      
+
       public override void Visit(OrConstraint constraint) {
         base.Visit(constraint);
Index: trunk/sources/HeuristicLab.Constraints/SubOperatorsTypeConstraint.cs
===================================================================
--- trunk/sources/HeuristicLab.Constraints/SubOperatorsTypeConstraint.cs	(revision 349)
+++ trunk/sources/HeuristicLab.Constraints/SubOperatorsTypeConstraint.cs	(revision 430)
@@ -55,5 +55,5 @@
       // check if already in the list of allowed functions
       foreach(IOperator existingOp in subOperators) {
-        if (IsOperatorTypeEqual(existingOp, op)) {
+        if(existingOp == op) {
           return;
         }
@@ -66,5 +66,5 @@
       IOperator matchingOperator = null;
       foreach(IOperator existingOp in subOperators) {
-        if(IsOperatorTypeEqual(existingOp, op)) {
+        if(existingOp == op) {
           matchingOperator = existingOp;
           break;
@@ -72,5 +72,5 @@
       }
 
-      if (matchingOperator != null) {
+      if(matchingOperator != null) {
         subOperators.Remove(matchingOperator);
       }
@@ -79,11 +79,11 @@
     public override bool Check(IItem data) {
       IOperator op = data as IOperator;
-      if (data == null) return false;
+      if(data == null) return false;
 
       if(op.SubOperators.Count <= subOperatorIndex.Data) {
         return false;
       }
-      
-      return subOperators.Exists(delegate(IOperator curOp) { return IsOperatorTypeEqual(curOp, op.SubOperators[subOperatorIndex.Data]); });
+
+      return subOperators.Exists(delegate(IOperator curOp) { return curOp == op.SubOperators[subOperatorIndex.Data]; });
     }
 
@@ -108,5 +108,5 @@
 
     #region persistence
-    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid,IStorable> persistedObjects) {
+    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {
       XmlNode node = base.GetXmlNode(name, document, persistedObjects);
       XmlNode indexNode = PersistenceManager.Persist("SubOperatorIndex", subOperatorIndex, document, persistedObjects);
@@ -121,5 +121,5 @@
     }
 
-    public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) {
+    public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {
       base.Populate(node, restoredObjects);
       subOperatorIndex = (IntData)PersistenceManager.Restore(node.SelectSingleNode("SubOperatorIndex"), restoredObjects);
@@ -131,8 +131,4 @@
     #endregion persistence
 
-
-    private bool IsOperatorTypeEqual(IOperator f, IOperator g) {
-      return ((StringData)f.GetVariable("TypeId").Value).Data == ((StringData)g.GetVariable("TypeId").Value).Data;
-    }
   }
 }
