diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetFloatParameter.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetFloatParameter.cxx
index d8dd1fa9764bb104f6cbb7413c8a7756ccd6508f..b876ecb8c749150b48c5ed78ade1dc72c3bab1c6 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetFloatParameter.cxx
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetFloatParameter.cxx
@@ -55,6 +55,7 @@ void QtWidgetFloatParameter::DoUpdateGUI()
     {
     font.setBold(false);
     }
+
   m_QDoubleSpinBox->setFont(font);
 }
 
@@ -78,6 +79,11 @@ void QtWidgetFloatParameter::DoCreateWidget()
   m_QHBoxLayout->addStretch();
 
   this->setLayout(m_QHBoxLayout);
+
+  if (m_FloatParam->GetRole() == Role_Output)
+    {
+    m_QDoubleSpinBox->setEnabled( false );
+    }
 }
 
 void QtWidgetFloatParameter::SetValue(double value)
diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetIntParameter.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetIntParameter.cxx
index dd45a92b7809e9df976da47f6165ba2dc4f8273e..95a3a5ebb084977215337d0ad555ddeb7e79c632 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetIntParameter.cxx
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetIntParameter.cxx
@@ -51,6 +51,11 @@ void QtWidgetIntParameter::DoCreateWidget()
   m_QHBoxLayout->addStretch();
 
   this->setLayout(m_QHBoxLayout);
+
+  if (m_IntParam->GetRole() == Role_Output)
+    {
+    m_QSpinBox->setEnabled( false );
+    }
 }
 
 void QtWidgetIntParameter::DoUpdateGUI()
diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetModel.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetModel.cxx
index 857984f3ce032bad588e3522cc94d4ab85f7a028..2344cc3f8befff9767698cd72a4ec2f676644d22 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetModel.cxx
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetModel.cxx
@@ -55,7 +55,9 @@ void QtWidgetModel::ExecuteAndWriteOutputSlot()
 
   // launch the output image writing
   AppliThread * taskAppli = new AppliThread( m_Application );
+  connect(taskAppli, SIGNAL(ApplicationExecutionDone()), this, SLOT(NotifyUpdate()));
   connect(taskAppli, SIGNAL(ApplicationExecutionDone()), this, SLOT(ActivateExecuteButton()));
+
   taskAppli->Execute();
 
   // Tell the Progress Reporter to begin
diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetStringParameter.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetStringParameter.cxx
index 64a99591d7c29fb4172d7ad98acb653e4e39ce51..1e363e2e0724784314b8711c63f9d4374c12918c 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetStringParameter.cxx
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetStringParameter.cxx
@@ -54,6 +54,11 @@ void QtWidgetStringParameter::DoCreateWidget()
   connect( GetModel(), SIGNAL(UpdateGui()), this, SLOT(UpdateGUI() ) );
 
   this->setLayout(m_HLayout);
+
+  if (m_StringParam->GetRole() == Role_Output)
+    {
+    m_Input->setEnabled( false );
+    }
 }
 
 void QtWidgetStringParameter::SetValue(const QString& value)