Index: /trunk/sources/HeuristicLab.FixedOperators/3.2/FixedGAMainBase.cs
===================================================================
--- /trunk/sources/HeuristicLab.FixedOperators/3.2/FixedGAMainBase.cs	(revision 2149)
+++ /trunk/sources/HeuristicLab.FixedOperators/3.2/FixedGAMainBase.cs	(revision 2150)
@@ -87,5 +87,5 @@
     } // FixedGABase
 
-    private void InitReplacement() {
+    protected virtual void InitReplacement() {
       ls = new LeftSelector();
       rr = new RightReducer();
@@ -170,5 +170,5 @@
     } // GetOperatorsFromScope
 
-    protected void DoReplacement(IScope scope) {
+    protected virtual void DoReplacement(IScope scope) {
       //// SequentialSubScopesProcessor
       Execute(ls, scope.SubScopes[0]);
Index: /trunk/sources/HeuristicLab.FixedOperators/3.2/FixedOSGAMain.cs
===================================================================
--- /trunk/sources/HeuristicLab.FixedOperators/3.2/FixedOSGAMain.cs	(revision 2149)
+++ /trunk/sources/HeuristicLab.FixedOperators/3.2/FixedOSGAMain.cs	(revision 2150)
@@ -37,9 +37,9 @@
   class FixedOSGAMain : FixedGAMainBase {
     WeightedOffspringFitnessComparer wofc;
-    OffspringSelector os;
+    protected IOperator os;
 
     public FixedOSGAMain()
       : base() {
-      Name = "FixeOSGAMain";
+      Name = "FixedOSGAMain";
       wofc = new WeightedOffspringFitnessComparer();
       os = new OffspringSelector();
@@ -144,7 +144,4 @@
         return new AtomicOperation(this, scope);
       }
-      catch (Exception ex) {
-        ex.ToString();
-      }
 
       return null;
Index: /trunk/sources/HeuristicLab.FixedOperators/3.2/FixedSteadyStateOSGAMain.cs
===================================================================
--- /trunk/sources/HeuristicLab.FixedOperators/3.2/FixedSteadyStateOSGAMain.cs	(revision 2150)
+++ /trunk/sources/HeuristicLab.FixedOperators/3.2/FixedSteadyStateOSGAMain.cs	(revision 2150)
@@ -0,0 +1,66 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Operators.Programmable;
+using HeuristicLab.Operators;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Permutation;
+using HeuristicLab.Evolutionary;
+using HeuristicLab.Routing.TSP;
+using HeuristicLab.Logging;
+using System.Diagnostics;
+using HeuristicLab.Selection;
+using System.Threading;
+using System.IO;
+using HeuristicLab.Random;
+
+
+namespace HeuristicLab.FixedOperators {
+  class FixedSteadyStateOSGAMain : FixedOSGAMain {
+
+    public FixedSteadyStateOSGAMain() {
+      Name = "FixedSteadyStateOSGAMain";
+      os = new ProgrammableOperator();
+      os.AddSubOperator(new EmptyOperator());
+      ((ProgrammableOperator)os).Code = @"IScope parents = scope.SubScopes[0], children = scope.SubScopes[1];
+                                          HeuristicLab.Data.DoubleData selectionPressure = scope.GetVariableValue<HeuristicLab.Data.DoubleData>(""SelectionPressure"", true);
+                                          int badCount = 0;
+                                          for (int i = 0 ; i < children.SubScopes.Count ; i++) {
+                                            IScope child = children.SubScopes[i];
+                                            bool successful = child.GetVariableValue<HeuristicLab.Data.BoolData>(""SuccessfulChild"", false).Data;
+                                            if (!successful) {
+                                              badCount++;
+                                              children.RemoveSubScope(child);
+                                              i--;
+                                            } 
+                                          }
+                                          selectionPressure.Data += badCount / ((double)parents.SubScopes.Count);
+                                          if (children.SubScopes.Count == 0) {
+                                            scope.RemoveSubScope(children);
+                                            scope.RemoveSubScope(parents);
+                                            for (int i = 0; i < parents.SubScopes.Count; i++)
+                                              scope.AddSubScope(parents.SubScopes[i]);
+                                            return new AtomicOperation(op.SubOperators[0], scope);
+                                          }
+                                          return null;";
+
+
+
+    } // FixedSteadyStateOSGAMain
+
+    protected override void InitReplacement() {
+      base.InitReplacement();
+      ls.GetVariableInfo("Selected").ActualName = "PopulationSize";
+    }
+
+    protected override void DoReplacement(IScope scope) {
+      //// SequentialSubScopesProcessor
+      Execute(mr, scope);
+      Execute(sorter, scope);
+      Execute(ls, scope);
+      Execute(rr, scope);
+    } // DoReplacement
+  } // class FixedSteadyStateOSGAMain
+} // namespace HeuristicLab.FixedOperators
Index: /trunk/sources/HeuristicLab.FixedOperators/3.2/HeuristicLab.FixedOperators-3.2.csproj
===================================================================
--- /trunk/sources/HeuristicLab.FixedOperators/3.2/HeuristicLab.FixedOperators-3.2.csproj	(revision 2149)
+++ /trunk/sources/HeuristicLab.FixedOperators/3.2/HeuristicLab.FixedOperators-3.2.csproj	(revision 2150)
@@ -106,4 +106,5 @@
     <Compile Include="HeuristicLabFixedOperatorsPlugin.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="FixedSteadyStateOSGAMain.cs" />
   </ItemGroup>
   <ItemGroup>
@@ -163,4 +164,8 @@
       <Project>{4095C92C-5A4C-44BC-9963-5F384CF5CC3F}</Project>
       <Name>HeuristicLab.Logging-3.2</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Operators.Programmable\3.2\HeuristicLab.Operators.Programmable-3.2.csproj">
+      <Project>{E3CCBFC6-900C-41B6-AFB8-6646DB097435}</Project>
+      <Name>HeuristicLab.Operators.Programmable-3.2</Name>
     </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Operators\3.2\HeuristicLab.Operators-3.2.csproj">
