diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.cpp
index 363625a8188741023b158e9c1b3a71fc892f8222..ba530f10ecf599570097dc150cdb8d8c7cbee26c 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.cpp
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.cpp
@@ -279,6 +279,7 @@ void ScenarioManagerWidgetController::reparsePackages()
             if (statusManager.isIceScenario(scenario))
             {
                 executor->setStarter(StarterFactory::getFactory()->getIceStarter(getArmarXManager()->getIceManager()->getIceGridSession()->getAdmin()), scenario);
+                executor->setStopStrategy(stopStrategyFactory.getStopStrategy(StopperFactory::getFactory()->getIceStopper(getArmarXManager()->getIceManager()->getIceGridSession()->getAdmin())), scenario);
             }
         }
 
diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ScenarioListController.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ScenarioListController.cpp
index 1559c75dbd6415748ef53d370376ea9bb9f8fa97..2347f548405148b7dd476b3c0c434e3f073f7aef 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ScenarioListController.cpp
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ScenarioListController.cpp
@@ -118,15 +118,12 @@ void ScenarioListController::stop(int row, int column, QModelIndex parent)
     {
         ScenarioPtr scenario = item->getScenario();
         StatusManager statusManager;
-        StopStrategyFactory stopStrategyFactory;
         if (statusManager.isIceScenario(scenario))
         {
-            executor->setStopStrategy(stopStrategyFactory.getStopStrategy(StopperFactory::getFactory()->getIceStopper(iceAdmin)), scenario);
             executor->removeScenario(scenario);
         }
         else
         {
-            executor->setStopStrategy(executor->getDefaultStopStrategy(), scenario);
             executor->stopScenario(scenario);
         }
     }
@@ -173,33 +170,37 @@ void ScenarioListController::startScenario(ScenarioItem* scenarioItem, ScenarioS
 {
     ScenarioPtr scenario = scenarioItem->getScenario();
     StatusManager statusManager;
+    StopStrategyFactory stopStrategyFactory;
+
     if (mode == LocalStart)
     {
-        if (statusManager.isIceScenario(scenario))
+        if (statusManager.isIceScenario(scenario) && scenario->getStatus() != ApplicationStatus::Stopped)
         {
-            if (scenario->getStatus() != ApplicationStatus::Stopped)
+            QMessageBox::StandardButton reply;
+            reply = QMessageBox::question(nullptr, "", "The Scenario is currently running via Ice do you want to remove it ?", QMessageBox::Yes | QMessageBox::No);
+            if (reply == QMessageBox::No)
             {
-                QMessageBox::StandardButton reply;
-                reply = QMessageBox::question(nullptr, "", "The Scenario is currently running via Ice do you want to remove it ?", QMessageBox::Yes | QMessageBox::No);
-                if (reply == QMessageBox::No)
-                {
-                    return;
-                }
-                else
-                {
-                    executor->setStarter(StarterFactory::getFactory()->getIceStarter(iceAdmin), scenario);
-                    statusManager.setIceScenario(scenario, false);
-                    executor->removeScenario(scenario);
-                }
+                return;
+            }
+            else
+            {
+                executor->setStarter(StarterFactory::getFactory()->getIceStarter(iceAdmin), scenario);
+                executor->setStopStrategy(stopStrategyFactory.getStopStrategy(StopperFactory::getFactory()->getIceStopper(iceAdmin)), scenario);
+
+                statusManager.setIceScenario(scenario, true);
+                executor->removeScenario(scenario);
+                return;
             }
         }
         executor->setStarter(StarterFactory::getFactory()->getStarter(), scenario);
+        executor->setStopStrategy(executor->getDefaultStopStrategy(), scenario);
+
         statusManager.setIceScenario(scenario, false);
         executor->startScenario(scenario);
     }
     else
     {
-        if (scenario->getStatus() != ApplicationStatus::Stopped)
+        if (!statusManager.isIceScenario(scenario) && scenario->getStatus() != ApplicationStatus::Stopped)
         {
             QMessageBox::StandardButton reply;
             reply = QMessageBox::question(nullptr, "", "The Scenario is currently running locally do you want to stop it ?", QMessageBox::Yes | QMessageBox::No);
@@ -210,10 +211,15 @@ void ScenarioListController::startScenario(ScenarioItem* scenarioItem, ScenarioS
             else
             {
                 executor->setStarter(StarterFactory::getFactory()->getStarter(), scenario);
+                executor->setStopStrategy(executor->getDefaultStopStrategy(), scenario);
+
                 executor->stopScenario(scenario);
+                return;
             }
         }
         executor->setStarter(StarterFactory::getFactory()->getIceStarter(iceAdmin), scenario);
+        executor->setStopStrategy(stopStrategyFactory.getStopStrategy(StopperFactory::getFactory()->getIceStopper(iceAdmin)), scenario);
+
         statusManager.setIceScenario(scenario, true);
         executor->deployScenario(scenario);
     }