Index: /trunk/sources/HeuristicLab.DataAnalysis/DatasetParser.cs
===================================================================
--- /trunk/sources/HeuristicLab.DataAnalysis/DatasetParser.cs	(revision 486)
+++ /trunk/sources/HeuristicLab.DataAnalysis/DatasetParser.cs	(revision 487)
@@ -39,4 +39,5 @@
     private const string TESTSAMPLESSTART = "TESTSAMPLESSTART";
     private const string TESTSAMPLESEND = "TESTSAMPLESEND";
+    private const string NONINPUTVARIABLES = "NONINPUTVARIABLES";
     private Tokenizer tokenizer;
     private Dictionary<string, List<Token>> metadata;
@@ -156,4 +157,16 @@
           return metadata[TESTSAMPLESEND][0].intValue;
         } else return rows;
+      }
+    }
+
+    public List<int> NonInputVariables {
+      get {
+        List<int> disallowedVariables = new List<int>();
+        if(metadata.ContainsKey(NONINPUTVARIABLES)) {
+          foreach(Token t in metadata[NONINPUTVARIABLES]) {
+            disallowedVariables.Add(t.intValue);
+          }
+        }
+        return disallowedVariables;
       }
     }
@@ -359,5 +372,5 @@
 
     private void ParseMetaData(bool strict) {
-      while(tokenizer.Peek().type==TokenTypeEnum.String) {
+      while(tokenizer.Peek().type == TokenTypeEnum.String) {
         Token nameToken = tokenizer.Next();
         if(nameToken.type != TokenTypeEnum.String)
Index: /trunk/sources/HeuristicLab.StructureIdentification/FunctionLibraryInjector.cs
===================================================================
--- /trunk/sources/HeuristicLab.StructureIdentification/FunctionLibraryInjector.cs	(revision 486)
+++ /trunk/sources/HeuristicLab.StructureIdentification/FunctionLibraryInjector.cs	(revision 487)
@@ -35,5 +35,5 @@
     private const string MINTIMEOFFSET = "MinTimeOffset";
     private const string MAXTIMEOFFSET = "MaxTimeOffset";
-    private const string OPERATORLIBRARY = "OperatorLibrary";
+    private const string OPERATORLIBRARY = "FunctionLibrary";
 
     private HeuristicLab.Functions.Variable variable;
@@ -48,16 +48,7 @@
       : base() {
       AddVariableInfo(new VariableInfo(ALLOWEDFEATURES, "List of indexes of allowed features", typeof(ItemList<IntData>), VariableKind.In));
-      GetVariableInfo(ALLOWEDFEATURES).Local = true;
-      AddVariable(new Variable(ALLOWEDFEATURES, new ItemList<IntData>()));
-
       AddVariableInfo(new VariableInfo(MINTIMEOFFSET, "Minimal time offset for all features", typeof(IntData), VariableKind.In));
-      GetVariableInfo(MINTIMEOFFSET).Local = true;
-      AddVariable(new Variable(MINTIMEOFFSET, new IntData()));
-
       AddVariableInfo(new VariableInfo(MAXTIMEOFFSET, "Maximal time offset for all feature", typeof(IntData), VariableKind.In));
-      GetVariableInfo(MAXTIMEOFFSET).Local = true;
-      AddVariable(new Variable(MAXTIMEOFFSET, new IntData()));
-
-      AddVariableInfo(new VariableInfo("OperatorLibrary", "Preconfigured default operator library", typeof(GPOperatorLibrary), VariableKind.New));
+      AddVariableInfo(new VariableInfo(OPERATORLIBRARY, "Preconfigured default operator library", typeof(GPOperatorLibrary), VariableKind.New));
     }
 
Index: /trunk/sources/HeuristicLab.StructureIdentification/StructIdProblemInjector.cs
===================================================================
--- /trunk/sources/HeuristicLab.StructureIdentification/StructIdProblemInjector.cs	(revision 486)
+++ /trunk/sources/HeuristicLab.StructureIdentification/StructIdProblemInjector.cs	(revision 487)
@@ -45,4 +45,8 @@
       AddVariable(new Variable("TargetVariable", new IntData()));
 
+      AddVariableInfo(new VariableInfo("AllowedFeatures", "Indexes of allowed input variables", typeof(ItemList<IntData>), VariableKind.New));
+      GetVariableInfo("AllowedFeatures").Local = true;
+      AddVariable(new Variable("AllowedFeatures", new ItemList<IntData>()));
+
       AddVariableInfo(new VariableInfo("TrainingSamplesStart", "TrainingSamplesStart", typeof(IntData), VariableKind.New));
       GetVariableInfo("TrainingSamplesStart").Local = true;
Index: /trunk/sources/HeuristicLab.StructureIdentification/StructIdProblemInjectorView.cs
===================================================================
--- /trunk/sources/HeuristicLab.StructureIdentification/StructIdProblemInjectorView.cs	(revision 486)
+++ /trunk/sources/HeuristicLab.StructureIdentification/StructIdProblemInjectorView.cs	(revision 487)
@@ -105,4 +105,9 @@
           ((IntData)StructIdProblemInjector.GetVariable("TestSamplesEnd").Value).Data = parser.TestSamplesEnd;
           ((IntData)StructIdProblemInjector.GetVariable("TargetVariable").Value).Data = parser.TargetVariable;
+          ItemList<IntData> allowedFeatures = (ItemList<IntData>)StructIdProblemInjector.GetVariable("AllowedFeatures").Value;
+          List<int> nonInputVariables = parser.NonInputVariables;
+          for(int i = 0; i < dataset.Columns; i++) {
+            if(!nonInputVariables.Contains(i)) allowedFeatures.Add(new IntData(i));
+          }
           Refresh();
         }
