Index: branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/GeneticAlgorithm.cs
===================================================================
--- branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/GeneticAlgorithm.cs	(revision 8228)
+++ branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/GeneticAlgorithm.cs	(revision 9363)
@@ -255,5 +255,5 @@
     }
     protected override void Problem_OperatorsChanged(object sender, EventArgs e) {
-      foreach (IOperator op in Problem.Operators) ParameterizeStochasticOperator(op);
+      foreach (IOperator op in Problem.Operators.OfType<IOperator>()) ParameterizeStochasticOperator(op);
       ParameterizeIterationBasedOperators();
       UpdateCrossovers();
Index: branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj
===================================================================
--- branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj	(revision 8228)
+++ branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj	(revision 9363)
@@ -214,5 +214,5 @@
   -->
   <PropertyGroup>
-    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+   <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
 set ProjectDir=$(ProjectDir)
 set SolutionDir=$(SolutionDir)
@@ -221,4 +221,10 @@
 call PreBuildEvent.cmd
 </PreBuildEvent>
+<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+export ProjectDir=$(ProjectDir)
+export SolutionDir=$(SolutionDir)
+
+$SolutionDir/PreBuildEvent.sh
+</PreBuildEvent>
   </PropertyGroup>
 </Project>
Index: branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs
===================================================================
--- branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs	(revision 8228)
+++ branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs	(revision 9363)
@@ -181,5 +181,5 @@
     }
     private UniformSubScopesProcessor IslandProcessor {
-      get { return ((RandomCreator.Successor as SubScopesCreator).Successor as UniformSubScopesProcessor); }
+      get { return OperatorGraph.Iterate().OfType<UniformSubScopesProcessor>().First(x => x.Operator is SolutionsCreator); }
     }
     private SolutionsCreator SolutionsCreator {
@@ -232,4 +232,7 @@
 
       RandomCreator randomCreator = new RandomCreator();
+      UniformSubScopesProcessor ussp0 = new UniformSubScopesProcessor();
+      LocalRandomCreator localRandomCreator = new LocalRandomCreator();
+      RandomCreator globalRandomResetter = new RandomCreator();
       SubScopesCreator populationCreator = new SubScopesCreator();
       UniformSubScopesProcessor ussp1 = new UniformSubScopesProcessor();
@@ -250,5 +253,18 @@
 
       populationCreator.NumberOfSubScopesParameter.ActualName = NumberOfIslandsParameter.Name;
-      populationCreator.Successor = ussp1;
+      populationCreator.Successor = ussp0;
+
+      ussp0.Operator = localRandomCreator;
+      ussp0.Successor = globalRandomResetter;
+
+      // BackwardsCompatibility3.3
+      // the global random is resetted to ensure the same algorithm results
+      #region Backwards compatible code, remove global random resetter with 3.4 and rewire the operator graph
+      globalRandomResetter.RandomParameter.ActualName = "GlobalRandom";
+      globalRandomResetter.SeedParameter.ActualName = SeedParameter.Name;
+      globalRandomResetter.SeedParameter.Value = null;
+      globalRandomResetter.SetSeedRandomlyParameter.Value = new BoolValue(false);
+      globalRandomResetter.Successor = ussp1;
+      #endregion
 
       ussp1.Operator = solutionsCreator;
@@ -325,5 +341,5 @@
     protected override void OnProblemChanged() {
       ParameterizeStochasticOperator(Problem.SolutionCreator);
-      ParameterizeStochasticOperator(Problem.Evaluator);
+      ParameterizeStochasticOperatorForIsland(Problem.Evaluator);
       foreach (IOperator op in Problem.Operators.OfType<IOperator>()) ParameterizeStochasticOperator(op);
       ParameterizeSolutionsCreator();
@@ -345,5 +361,5 @@
     }
     protected override void Problem_EvaluatorChanged(object sender, EventArgs e) {
-      ParameterizeStochasticOperator(Problem.Evaluator);
+      ParameterizeStochasticOperatorForIsland(Problem.Evaluator);
       ParameterizeSolutionsCreator();
       ParameterizeMainLoop();
Index: branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithmMainLoop.cs
===================================================================
--- branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithmMainLoop.cs	(revision 8228)
+++ branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithmMainLoop.cs	(revision 9363)
@@ -313,6 +313,10 @@
       uniformSubScopesProcessor0.Successor = analyzer1;
       islandVariableCreator.Successor = islandAnalyzer1;
+      // BackwardsCompatibility3.3
+      //the local randoms are created by the island GA itself and are only here to ensure same algorithm results
+      #region Backwards compatible code, remove local random creator with 3.4 and rewire the operator graph
       islandAnalyzer1.Successor = localRandomCreator;
       localRandomCreator.Successor = null;
+      #endregion
       analyzer1.Successor = resultsCollector1;
       resultsCollector1.Successor = uniformSubScopesProcessor1;
Index: branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/Plugin.cs.frame
===================================================================
--- branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/Plugin.cs.frame	(revision 8228)
+++ branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/Plugin.cs.frame	(revision 9363)
@@ -26,5 +26,5 @@
   /// Plugin class for HeuristicLab.Algorithms.GeneticAlgorithm plugin.
   /// </summary>
-  [Plugin("HeuristicLab.Algorithms.GeneticAlgorithm", "3.3.6.$WCREV$")]
+  [Plugin("HeuristicLab.Algorithms.GeneticAlgorithm", "3.3.7.$WCREV$")]
   [PluginFile("HeuristicLab.Algorithms.GeneticAlgorithm-3.3.dll", PluginFileType.Assembly)]
   [PluginDependency("HeuristicLab.Analysis", "3.3")]
Index: branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/Properties/AssemblyInfo.cs.frame	(revision 8228)
+++ branches/OaaS/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/Properties/AssemblyInfo.cs.frame	(revision 9363)
@@ -53,3 +53,3 @@
 // by using the '*' as shown below:
 [assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.6.$WCREV$")]
+[assembly: AssemblyFileVersion("3.3.7.$WCREV$")]
