diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.cpp
index 84c680144c2edaefd2cddb4731be94ed1b10b5da..fa70a46971a281fbccb07c19886020b4c4525f3d 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.cpp
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.cpp
@@ -131,8 +131,8 @@ void ScenarioManagerWidgetController::init()
     QObject::connect(&scenarioListController, SIGNAL(updated()),
                      this, SLOT(updateModels()));
 
-    QObject::connect(&scenarioListController, SIGNAL(applicationInstanceClicked(Data_Structure::ApplicationInstancePtr)),
-                     &detailedApplicationController, SLOT(showApplicationInstance(Data_Structure::ApplicationInstancePtr)));
+    QObject::connect(&scenarioListController, SIGNAL(applicationInstanceClicked(Data_Structure::ApplicationInstancePtr, ScenarioItem*)),
+                     &detailedApplicationController, SLOT(showApplicationInstance(Data_Structure::ApplicationInstancePtr, ScenarioItem*)));
 
     QObject::connect(&scenarioListController, SIGNAL(scenarioClicked(Data_Structure::ScenarioPtr)),
                      &detailedApplicationController, SLOT(showScenario(Data_Structure::ScenarioPtr)));
@@ -176,6 +176,9 @@ void ScenarioManagerWidgetController::init()
     QObject::connect(widget.detailedApplicationView, SIGNAL(addParameterButtonClicked()),
                      &detailedApplicationController, SLOT(showPropertyAddView()));
 
+    QObject::connect(widget.detailedApplicationView, SIGNAL(applicationEnabledChange(bool)),
+                     &scenarioListController, SLOT(updateModel()));
+
 
     QObject::connect(widget.detailedApplicationView, SIGNAL(saveScenario(ScenarioManager::Data_Structure::ApplicationInstancePtr)),
                      &scenarioListController, SLOT(saveScenario(ScenarioManager::Data_Structure::ApplicationInstancePtr)));
diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ApplicationDatabaseController.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ApplicationDatabaseController.cpp
index 9061ec10913dfd5f68ca8073c87cdbadbad814a6..647bdf844085caf09f08fe0d13af4d3110446fd6 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ApplicationDatabaseController.cpp
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ApplicationDatabaseController.cpp
@@ -79,7 +79,7 @@ void ApplicationDatabaseController::updatePackages()
 
             if (!application->getFound())
             {
-                applicationItem->disable();
+                applicationItem->setEnabled(false);
             }
 
             packageItem->appendChild(applicationItem);
diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/controller/DetailedApplicationController.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/controller/DetailedApplicationController.cpp
index f24cadb676bd7f9f4d8ba5119d9aa53862a26c7e..0d2835dbe344137e2d9af0079b92bf5b83d8f61b 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/controller/DetailedApplicationController.cpp
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/controller/DetailedApplicationController.cpp
@@ -52,7 +52,7 @@ void DetailedApplicationController::setDetailedApplicationView(DetailedApplicati
     view = ptr;
 }
 
-void DetailedApplicationController::showApplicationInstance(ApplicationInstancePtr application)
+void DetailedApplicationController::showApplicationInstance(ApplicationInstancePtr application, ScenarioItem* item)
 {
     if (application.get() == nullptr)
     {
@@ -65,7 +65,7 @@ void DetailedApplicationController::showApplicationInstance(ApplicationInstanceP
     executor->loadAndSetCachedProperties(application, Parser::IceParser::getCacheDir(), false, false);
     application->load();
     view->setVisible(true);
-    view->showApplicationInstance(application);
+    view->showApplicationInstance(application, item);
 }
 
 void DetailedApplicationController::showApplication(ApplicationPtr application)
@@ -135,7 +135,7 @@ void DetailedApplicationController::setProperty(std::string name, std::string va
         {
             currentApplication->addProperty(name, value);
             currentApplication->save();
-            showApplicationInstance(currentApplication);
+            showApplicationInstance(currentApplication, nullptr);
         }
         else if (currentScenario.get() != nullptr)
         {
@@ -153,54 +153,10 @@ void DetailedApplicationController::start()
     {
         if (currentApplication.get() != nullptr)
         {
-            //            //check if there is an undefined req property
-            //            armarx::PropertyDefinitionsPtr props = currentApplication->getProperties();
-            //            Ice::PropertyDict dict = props->getProperties()->getPropertiesForPrefix("");
-
-            //            bool foundUnsetRequired = false;
-            //            for(auto const &property : dict)
-            //            {
-            //                if(property.second == "::_NOT_SET_::" || property.second == "<set value!>") {
-            //                 foundUnsetRequired = true;
-            //                 break;
-            //                }
-            //            }
-
-            //            if(foundUnsetRequired) {
-            //                QMessageBox message;
-            //                message.setText(QString::fromStdString("There are uninitialised Required Properties in Application " + currentApplication->getName()));
-            //                message.exec();
-            //            }
-
             executor->startApplication(currentApplication);
         }
         else if (currentScenario.get() != nullptr)
         {
-            for (auto instance = currentScenario->getApplications()->begin(); instance != currentScenario->getApplications()->end(); ++instance)
-            {
-                //check if there is an undefined req property
-                armarx::PropertyDefinitionsPtr props = (*instance)->getProperties();
-                Ice::PropertyDict dict = props->getProperties()->getPropertiesForPrefix("");
-
-                bool foundUnsetRequired = false;
-                for (auto const & property : dict)
-                {
-                    if (property.second == "::_NOT_SET_::" || property.second == "<set value!>")
-                    {
-                        foundUnsetRequired = true;
-                        break;
-                    }
-                }
-
-                if (foundUnsetRequired)
-                {
-                    QMessageBox message;
-                    message.setText(QString::fromStdString("There are uninitialised Required Properties in Application " + (*instance)->getName()));
-                    message.exec();
-                }
-
-            }
-
             executor->startScenario(currentScenario);
         }
     }
diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/controller/DetailedApplicationController.h b/source/ArmarXGui/gui-plugins/ScenarioManager/controller/DetailedApplicationController.h
index 970bfa57323bc0a7dbd0221bc8f491da160afdaf..ca848ef47654fdc0b7d63862f6b523faee9c6887 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/controller/DetailedApplicationController.h
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/controller/DetailedApplicationController.h
@@ -32,6 +32,7 @@
 #include <ArmarXCore/util/ScenarioManagerCommon/executor/Executor.h>
 #include "../gui/detailedapplicationview.h"
 #include "../gui/createpropertyview.h"
+#include "../gui/scenarioitem.h"
 #include <QObject>
 #include <boost/shared_ptr.hpp>
 #include <vector>
@@ -72,7 +73,7 @@ namespace ScenarioManager
             * Shows an ApplicationInstance in the DetailedApplicationView.
             * @param application ApplicationInstance to show
             */
-            void showApplicationInstance(Data_Structure::ApplicationInstancePtr application);
+            void showApplicationInstance(Data_Structure::ApplicationInstancePtr application, ScenarioItem* item);
 
             /**
             * Shows an Application in the DetailedApplicationView.
diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ScenarioListController.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ScenarioListController.cpp
index 6d24e301b193df65df44e4361a603f135eb6babc..27d92a13c0e29a29a0b34170e5b3c7328dc47572 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ScenarioListController.cpp
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ScenarioListController.cpp
@@ -329,7 +329,7 @@ void ScenarioListController::addApplicationsToScenario(QList<QPair<QString, Appl
         std::ofstream out(configPath);
         out.close();
 
-        ApplicationInstancePtr appInstance(new ApplicationInstance(appName, app->getPathToExecutable(), instanceName, configPath, appPackage->getName(), scenario));
+        ApplicationInstancePtr appInstance(new ApplicationInstance(appName, app->getPathToExecutable(), instanceName, configPath, appPackage->getName(), scenario, true));
 
         std::string cacheDir = Parser::IceParser::getCacheDir();
 
@@ -536,7 +536,7 @@ void ScenarioListController::showApplication(const QModelIndex& index)
         {
             ApplicationInstancePtr appInstance = item->getApplicationInstance();
             appInstance->updateFound();
-            if (!item->isEnabled() || !appInstance->getFound())
+            if (!appInstance->getFound())
             {
                 QMessageBox message;
                 message.setText("Could not find Application " + item->data(0).toString() + " at " + QString::fromStdString(appInstance->getPathToExecutable()) + ".");
@@ -549,7 +549,7 @@ void ScenarioListController::showApplication(const QModelIndex& index)
                 return;
             }
 
-            emit applicationInstanceClicked(appInstance);
+            emit applicationInstanceClicked(appInstance, item);
         }
         else
         {
@@ -590,7 +590,8 @@ void ScenarioListController::updateModel() //Scenarios don't have a setStatus-me
 
                 for (auto it : packageSubtrees)
                 {
-                    scenarioItem->appendChild(new ScenarioItem(it.first, it.second));
+                    ScenarioItem* currentItem = new ScenarioItem(it.first, it.second);
+                    scenarioItem->appendChild(currentItem);
                 }
                 treemodel.insertRow(0, scenarioItem);
             }
@@ -627,6 +628,40 @@ void ScenarioListController::updateModel() //Scenarios don't have a setStatus-me
         }
     }
 }
+QModelIndex ScenarioListController::findApplicationModelIndex(ScenarioManager::Data_Structure::ApplicationInstancePtr application)
+{
+    QModelIndex subScenarioModelIndex = findSubScenarioModelIndex(application->getScenario()->getName(), application->getPackageName());
+    if (!subScenarioModelIndex.isValid())
+    {
+        return QModelIndex();
+    }
+    int count = 0;
+    QModelIndex appIndex = subScenarioModelIndex.child(0, 0);
+    while (true)
+    {
+        appIndex = appIndex.sibling(count, 0);
+        if (!appIndex.isValid())
+        {
+            return QModelIndex();
+        }
+        if (application->getInstanceName().empty())
+        {
+            if (application->getName() == appIndex.data().toString().toStdString())
+            {
+                return appIndex;
+            }
+        }
+        else
+        {
+            if (application->getInstanceName() + "." + application->getName() == appIndex.data().toString().toStdString())
+            {
+                return appIndex;
+            }
+        }
+
+        count++;
+    }
+}
 
 QModelIndex ScenarioListController::findSubScenarioModelIndex(std::string scenarioName, std::string packageName)
 {
@@ -638,15 +673,16 @@ QModelIndex ScenarioListController::findSubScenarioModelIndex(std::string scenar
     {
         scenarioIndex = scenarioIndex.sibling(count, 0);
 
+        if (!scenarioIndex.isValid())
+        {
+            return QModelIndex();
+        }
         if (scenarioName == scenarioIndex.data().toString().toStdString())
         {
             scenarioFound = true;
             break;
         }
-        if (!scenarioIndex.isValid())
-        {
-            return QModelIndex();
-        }
+
         count++;
     }
 
@@ -654,14 +690,14 @@ QModelIndex ScenarioListController::findSubScenarioModelIndex(std::string scenar
     while (true)
     {
         QModelIndex currentSubPackageIndex = scenarioIndex.child(count, 0);
-        if (packageName == currentSubPackageIndex.data().toString().toStdString())
-        {
-            return currentSubPackageIndex;
-        }
         if (!currentSubPackageIndex.isValid())
         {
             return QModelIndex();
         }
+        if (packageName == currentSubPackageIndex.data().toString().toStdString())
+        {
+            return currentSubPackageIndex;
+        }
         count++;
     }
 
@@ -708,7 +744,7 @@ void ScenarioListController::updateStati()
     IceUtil::Time start = IceUtil::Time ::now();
     bool changed = false;
     //update all app instances and scenarios
-    for (ScenarioManager::Data_Structure::PackagePtr& package : *packages)
+    for (ScenarioManager::Data_Structure::PackagePtr & package : *packages)
     {
         ScenarioVectorPtr scenarios = package->getScenarios();
         for (ScenarioPtr scenario : *scenarios)
diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ScenarioListController.h b/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ScenarioListController.h
index 754137c5aae6603925f74160b1546d3929edd60b..eb68a261ddb67bcd3c77f23ab56c189f6e94ea3f 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ScenarioListController.h
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/controller/ScenarioListController.h
@@ -89,7 +89,7 @@ namespace ScenarioManager
             * Gets emitted after an ApplicationInstance has been clicked.
             * @param scenario clicked ApplicationInstance
             */
-            void applicationInstanceClicked(Data_Structure::ApplicationInstancePtr appInstance);
+            void applicationInstanceClicked(Data_Structure::ApplicationInstancePtr appInstance, ScenarioItem* item);
 
             /**
             * Gets emitted after a Scenario has been clicked.
@@ -168,6 +168,7 @@ namespace ScenarioManager
         private:
             int findScenario(ScenarioItem* rootItem, std::string name, std::string packageName);
             QModelIndex findSubScenarioModelIndex(std::string scenarioName, std::string packageName);
+            QModelIndex findApplicationModelIndex(ScenarioManager::Data_Structure::ApplicationInstancePtr application);
             QModelIndex findSubScenarioModelIndexByScenarioIndex(QModelIndex scenarioIndex, std::string packageName);
 
         private:
diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/detailedapplicationview.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/detailedapplicationview.cpp
index b842be430b4650b76da460f01b3e355ae38d8ad6..4d1d4994c4fd8c4e42006f8c738bff83baa93e73 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/detailedapplicationview.cpp
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/detailedapplicationview.cpp
@@ -41,6 +41,7 @@ DetailedApplicationView::DetailedApplicationView(QWidget* parent) :
     variantManager(nullptr),
     variantFactory(nullptr),
     statusUpdateRelevant(false),
+    lastScenarioItem(nullptr),
     neadsUpdate(false)
 {
     updateTimer.setSingleShot(true);
@@ -91,6 +92,7 @@ void DetailedApplicationView::showApplication(ApplicationPtr application)
 
     lastAppInstance = ApplicationInstancePtr();
     lastScenario = ScenarioPtr();
+    lastScenarioItem = nullptr;
     statusUpdateRelevant = false;
 
     ui->stateLabel->setStyleSheet("QLabel { color : black; }");
@@ -128,7 +130,7 @@ void DetailedApplicationView::showApplication(ApplicationPtr application)
 
     Ice::PropertyDict dict = props->getProperties()->getPropertiesForPrefix("");
 
-    for (auto const& property : dict)
+    for (auto const & property : dict)
     {
         QtVariantProperty* appPropertyItem = variantManager->addProperty(QVariant::String, QString::fromStdString(property.first));
         appPropertyItem->setValue(QString::fromStdString(property.second));
@@ -145,7 +147,7 @@ void DetailedApplicationView::showApplication(ApplicationPtr application)
     ui->propertyBrowser->setRootIsDecorated(false);
 }
 
-void DetailedApplicationView::showApplicationInstance(ApplicationInstancePtr appInstance)
+void DetailedApplicationView::showApplicationInstance(ApplicationInstancePtr appInstance, ScenarioItem* item)
 {
     if (appInstance.get() == nullptr)
     {
@@ -177,10 +179,24 @@ void DetailedApplicationView::showApplicationInstance(ApplicationInstancePtr app
     statusUpdateRelevant = true;
     lastAppInstance = appInstance;
     lastScenario = ScenarioPtr(nullptr);
+    if (item != nullptr)
+    {
+        lastScenarioItem = item;
+    }
+
+    if (lastAppInstance->getEnabled())
+    {
+        ui->startButton->setEnabled(true);
+        ui->stopButton->setEnabled(true);
+        ui->restartButton->setEnabled(true);
+    }
+    else
+    {
+        ui->startButton->setEnabled(false);
+        ui->stopButton->setEnabled(false);
+        ui->restartButton->setEnabled(false);
+    }
 
-    ui->startButton->setEnabled(true);
-    ui->stopButton->setEnabled(true);
-    ui->restartButton->setEnabled(true);
     ui->addParameterButton->setEnabled(true);
     ui->toolButton->setEnabled(true);
     //build propertybrowser items
@@ -218,6 +234,10 @@ void DetailedApplicationView::showApplicationInstance(ApplicationInstancePtr app
     pidItem->setEnabled(false);
     appInstanceTopItem->addSubProperty(pidItem);
 
+    QtVariantProperty* enabledItem = variantManager->addProperty(QVariant::Bool, QString("Enabled"));
+    enabledItem->setValue(appInstance->getEnabled());
+    appInstanceTopItem->addSubProperty(enabledItem);
+
     QtProperty* appPropertyTopItem = variantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
                                      QLatin1String("Properties"));
     appInstanceTopItem->addSubProperty(appPropertyTopItem);
@@ -226,7 +246,7 @@ void DetailedApplicationView::showApplicationInstance(ApplicationInstancePtr app
 
     Ice::PropertyDict dict = props->getProperties()->getPropertiesForPrefix("");
 
-    for (auto const& property : dict)
+    for (auto const & property : dict)
     {
         if (property.first != "Ice.Config")
         {
@@ -279,6 +299,8 @@ void DetailedApplicationView::showScenario(ScenarioPtr scenario)
     statusUpdateRelevant = true;
     lastScenario = scenario;
     lastAppInstance = ApplicationInstancePtr(nullptr);
+    lastScenarioItem = nullptr;
+
 
     if (scenario->getStatus().compare("Running") == 0)
     {
@@ -347,7 +369,7 @@ void DetailedApplicationView::showScenario(ScenarioPtr scenario)
 
     Ice::PropertyDict dict = props->getProperties()->getPropertiesForPrefix("");
 
-    for (auto const& property : dict)
+    for (auto const & property : dict)
     {
         if (property.first != "Ice.Config")
         {
@@ -399,6 +421,8 @@ void DetailedApplicationView::showPackage(PackagePtr package)
 
     lastAppInstance = ApplicationInstancePtr();
     lastScenario = ScenarioPtr();
+    lastScenarioItem = nullptr;
+
     statusUpdateRelevant = false;
 
     ui->stateLabel->setStyleSheet("QLabel { color : black; }");
@@ -538,6 +562,32 @@ void DetailedApplicationView::itemChanged(QtProperty* property, const QVariant&
 
                 updateTimer.start(UPDATE_TIMER_INTERVAL);
             }
+            else if (property->propertyName().compare("Instance Name") && property->propertyName() == "Enabled")
+            {
+                if (property->valueText() == "True")
+                {
+                    lastAppInstance->setEnabled(true);
+                    ui->startButton->setEnabled(true);
+                    ui->stopButton->setEnabled(true);
+                    ui->restartButton->setEnabled(true);
+                    if (lastScenarioItem != nullptr)
+                    {
+                        lastScenarioItem->setEnabled(true);
+                    }
+                }
+                else
+                {
+                    lastAppInstance->setEnabled(false);
+                    ui->startButton->setEnabled(false);
+                    ui->stopButton->setEnabled(false);
+                    ui->restartButton->setEnabled(false);
+                    if (lastScenarioItem != nullptr)
+                    {
+                        lastScenarioItem->setEnabled(false);
+                    }
+                }
+                updateTimer.start(UPDATE_TIMER_INTERVAL);
+            }
             else if (property->propertyName().compare("Instance Name") && properties->getProperty(property->propertyName().toStdString()).compare(value.toString().toStdString()))
             {
                 lastAppInstance->modifyProperty(property->propertyName().toStdString(), property->valueText().toStdString());
@@ -640,7 +690,7 @@ void DetailedApplicationView::on_reloadButton_clicked()
         if (lastAppInstance.get() != nullptr)
         {
             lastAppInstance->load();
-            showApplicationInstance(lastAppInstance);
+            showApplicationInstance(lastAppInstance, nullptr);
         }
         else if (lastScenario.get() != nullptr)
         {
diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/detailedapplicationview.h b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/detailedapplicationview.h
index 79a14fcf0e0681650d3765520ea30339276a2fd8..baa430c62a1db2a04804d5749fbe7c7694e13b18 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/detailedapplicationview.h
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/detailedapplicationview.h
@@ -29,6 +29,7 @@
 #include <ArmarXCore/util/ScenarioManagerCommon/data_structure/Package.h>
 #include <ArmarXGui/libraries/qtpropertybrowser/src/qtpropertymanager.h>
 #include "OptionalPropertyFactory.h"
+#include "scenarioitem.h"
 #include <boost/shared_ptr.hpp>
 #include <QWidget>
 #include <QTimer>
@@ -72,7 +73,7 @@ public:
     * Show an ApplicationInstance.
     * @param appInstance ApplicationInstance to show
     */
-    void showApplicationInstance(ScenarioManager::Data_Structure::ApplicationInstancePtr appInstance);
+    void showApplicationInstance(ScenarioManager::Data_Structure::ApplicationInstancePtr appInstance, ScenarioItem* item);
 
     /**
     * Show a Scenario.
@@ -94,6 +95,7 @@ signals:
     void addParameterButtonClicked();
     void toolButtonClicked();
     void saveScenario(ScenarioManager::Data_Structure::ApplicationInstancePtr application);
+    void applicationEnabledChange(bool enabled);
 
 public slots:
     /**
@@ -131,6 +133,7 @@ private:
     bool statusUpdateRelevant;
     ScenarioManager::Data_Structure::ApplicationInstancePtr lastAppInstance;
     ScenarioManager::Data_Structure::ScenarioPtr lastScenario;
+    ScenarioItem* lastScenarioItem;
 
     bool neadsUpdate;
     QTimer updateTimer;
diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/scenarioitem.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/scenarioitem.cpp
index 778f6dc18d65ea4a983cdbf814e355efc77f692a..09921b3b7a0190976bc8ffb84e52f6aef51fe468 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/scenarioitem.cpp
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/scenarioitem.cpp
@@ -46,6 +46,7 @@ ScenarioItem::ScenarioItem(ScenarioPtr scenario)
 ScenarioItem::ScenarioItem(ApplicationInstancePtr application)
 {
     this->application = application;
+    setEnabled(application->getEnabled());
 
     update();
 }
@@ -57,7 +58,10 @@ ScenarioItem::ScenarioItem(std::string name, std::vector<ApplicationInstancePtr>
 
     for (auto application : applications)
     {
-        this->appendChild(new ScenarioItem(application));
+        ScenarioItem* currentItem = new ScenarioItem(application);
+        currentItem->setEnabled(application->getEnabled());
+
+        this->appendChild(currentItem);
     }
 
     update();
@@ -85,6 +89,10 @@ void ScenarioItem::update()
         for (int i = 0; i < childCount(); i++)
         {
             static_cast<ScenarioItem*>(child(i))->update();
+            if (!child(i)->isEnabled())
+            {
+                continue;
+            }
             if (status == ApplicationStatus::Unknown && child(i)->data(4).toString().toStdString() == ApplicationStatus::Running)
             {
                 status = ApplicationStatus::Running;
@@ -110,7 +118,8 @@ void ScenarioItem::update()
             {
                 status = ApplicationStatus::Mixed;
                 break;
-            } else if (child(i)->data(4).toString().toStdString() == ApplicationStatus::Waiting)
+            }
+            else if (child(i)->data(4).toString().toStdString() == ApplicationStatus::Waiting)
             {
                 status = ApplicationStatus::Waiting;
                 break;
@@ -156,6 +165,8 @@ void ScenarioItem::update()
         {
             m_itemData[4] = QVariant(QString::fromStdString(ApplicationStatus::Unknown));
         }
+
+        setEnabled(application->getEnabled());
     }
 }
 
diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/scenariomodel.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/scenariomodel.cpp
index b85e6704659f4b41d71809847ffd82bd675afb79..bb846cbfd2e4c116bacafc73df53db608ee9d8e9 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/scenariomodel.cpp
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/scenariomodel.cpp
@@ -50,6 +50,11 @@ QVariant ScenarioModel::data(const QModelIndex& index, int role) const
 
     if (role == Qt::ForegroundRole)
     {
+        ApplicationInstancePtr instance = static_cast<ScenarioItem*>(index.internalPointer())->getApplicationInstance();
+        if (instance.get() != nullptr && !instance->getEnabled())
+        {
+            return QColor(Qt::lightGray);
+        }
         if (index.column() == 4)
         {
             if (index.data().toString().toStdString() == "Not Found")
@@ -67,7 +72,8 @@ QVariant ScenarioModel::data(const QModelIndex& index, int role) const
             else if (index.data().toString().toStdString() == ApplicationStatus::Mixed)
             {
                 return QColor(Qt::darkYellow);
-            } else if (index.data().toString().toStdString() == ApplicationStatus::Waiting)
+            }
+            else if (index.data().toString().toStdString() == ApplicationStatus::Waiting)
             {
                 return QColor(Qt::blue);
             }
diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/treeitem.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/treeitem.cpp
index e8231bbb38e1d584b503494d5a38e085dd9aabf3..a07d56696ef6ed2858bd7d08f1f322f06f2ee70a 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/treeitem.cpp
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/treeitem.cpp
@@ -81,9 +81,9 @@ int TreeItem::row() const
     return 0;
 }
 
-void TreeItem::disable()
+void TreeItem::setEnabled(bool enabled)
 {
-    enabled = false;
+    this->enabled = enabled;
 }
 
 bool TreeItem::isEnabled()
diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/treeitem.h b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/treeitem.h
index bc1a31c8be91579e2732b52d7eaa6aaae91a69b4..5104e485448fbfb0254b9001fbc0f2f3779b62e7 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/treeitem.h
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/treeitem.h
@@ -68,7 +68,7 @@ public:
 
     int row() const;
 
-    void disable();
+    void setEnabled(bool enabled);
     bool isEnabled();
 
 protected:
diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/test/DataStructureTest.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/test/DataStructureTest.cpp
index 5dde2105e174ee4d0209285b0be283ddcf21fb0d..a887910b1867a0c3786ee3b370a3ed88f8c98e1a 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/test/DataStructureTest.cpp
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/test/DataStructureTest.cpp
@@ -79,7 +79,7 @@ BOOST_AUTO_TEST_CASE(ApplicationInitialization)
     for (auto app : *apps)
     {
         i++;
-        ApplicationInstancePtr ai = ApplicationInstancePtr(new ApplicationInstance((*app), "instance" + std::to_string(i), "", s));
+        ApplicationInstancePtr ai = ApplicationInstancePtr(new ApplicationInstance((*app), "instance" + std::to_string(i), "", s, false));
         if (i == 1)
         {
             aip = ai;
diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/test/XMLScenarioParserTest.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/test/XMLScenarioParserTest.cpp
index 9ab910dee12e18ffbf2a0af6010a6110f58e0656..782daf6f256c1a328d41f1a14ebc99335848fa2d 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/test/XMLScenarioParserTest.cpp
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/test/XMLScenarioParserTest.cpp
@@ -87,7 +87,7 @@ BOOST_AUTO_TEST_CASE(IceParserLoadFromXml_DebugObserverTest)
 {
     //init app for test
     app1 = ApplicationPtr(new Application("DebugObserver", "not relevant", "ArmarXCore"));
-    api1 = ApplicationInstancePtr(new ApplicationInstance((*app1), "", "not relevant", s));
+    api1 = ApplicationInstancePtr(new ApplicationInstance((*app1), "", "not relevant", s, false));
 
     //find DebugObserver.xml file
     std::string relativeFilename("ArmarXGui/ScenarioManagerTestData/xmlCache/ArmarXCore.DebugObserver.xml");
@@ -122,7 +122,7 @@ BOOST_AUTO_TEST_CASE(IceParserLoadFromXml_HeadIKUnitTest)
 {
     //init app for test
     app1 = ApplicationPtr(new Application("HeadIKUnit", "not relevant", "RobotApi"));
-    api1 = ApplicationInstancePtr(new ApplicationInstance((*app1), "", "not relevant", s));
+    api1 = ApplicationInstancePtr(new ApplicationInstance((*app1), "", "not relevant", s, false));
 
     //find DebugObserver.xml file
     std::string relativeFilename("ArmarXGui/ScenarioManagerTestData/xmlCache/RobotAPI.HeadIKUnit.xml");
@@ -162,7 +162,7 @@ BOOST_AUTO_TEST_CASE(IceParserLoadFromXml_DepthImageProviderDynamicSimulationApp
 {
     //init app for test
     app1 = ApplicationPtr(new Application("DepthImageProviderDynamicSimulationApp", "not relevant", "ArmarXSimulation"));
-    api1 = ApplicationInstancePtr(new ApplicationInstance((*app1), "", "not relevant", s));
+    api1 = ApplicationInstancePtr(new ApplicationInstance((*app1), "", "not relevant", s, false));
 
     //find DebugObserver.xml file
     std::string relativeFilename("ArmarXGui/ScenarioManagerTestData/xmlCache/ArmarXSimulation.DepthImageProviderDynamicSimulationApp.xml");