diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.cxx
index 6b0db47291bc08d3181eb087776dfcb6721e282b..4f55be369762ec9bb68c8aa2203e98b3c4a10572 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.cxx
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.cxx
@@ -140,7 +140,13 @@ QtWidgetInputImageListParameter::UpdateImageList()
   // save value
   for(unsigned int j=0; j<m_InputImageListParam->GetImageList()->Size(); j++ )
     {
-    m_InputImageListParam->SetNthFileName(j, m_FileSelectionList[j]->GetFilename());
+    if( m_InputImageListParam->SetNthFileName(j, m_FileSelectionList[j]->GetFilename()) == true )
+      {
+      itk::OStringStream oss;
+      oss << "The given file " << m_FileSelectionList[j]->GetFilename() << " is not valid.";
+      this->GetModel()->SendLogWARNING( oss.str() );
+      m_FileSelectionList[j]->ClearFilename();
+      }
     }
 
   emit Change();
@@ -346,18 +352,23 @@ void QtWidgetInputImageListParameter::RecreateImageList()
   // save value
   m_InputImageListParam->ClearValue();
 
-  for(unsigned int j=0; j<m_FileSelectionList.size(); j++ )
+  if( m_FileSelectionList.size() == 0)
+    {
+    this->AddFile();
+    }
+  else
     {
-    if( m_InputImageListParam->AddFromFileName(m_FileSelectionList[j]->GetFilename()) == true )
+    for(unsigned int j=0; j<m_FileSelectionList.size(); j++ )
       {
-      itk::OStringStream oss;
-      oss << "The given file " << m_FileSelectionList[j]->GetFilename() << " is not valid.";
-      this->GetModel()->SendLogWARNING( oss.str() );
-      m_FileSelectionList[j]->ClearFilename();
+      m_InputImageListParam->AddFromFileName(m_FileSelectionList[j]->GetFilename());
+      connect( m_FileSelectionList[j]->GetInput(), SIGNAL(textChanged(const QString&)), this, SLOT(UpdateImageList()) );
       }
-    }
-  
+
     emit Change();
+    // notify of value change
+    QString key( QString::fromStdString(m_InputImageListParam->GetKey()) );
+    emit ParameterChanged(key);
+    }
 }
 
 
diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageParameter.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageParameter.cxx
index 0d35287633bd8a5b8525c2c804e5af538b01548d..841d38c45638690019c94c3ea06fba9688a8a4de 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageParameter.cxx
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageParameter.cxx
@@ -72,6 +72,12 @@ void QtWidgetInputImageParameter::SelectFile()
     {
     if ( this->SetFileName(fileDialog.selectedFiles().at(0)) == false )
       m_Input->setText(fileDialog.selectedFiles().at(0));
+    else
+      {
+      itk::OStringStream oss;
+      oss << "The given file " << m_FileSelectionList[j]->GetFilename() << " is not valid.";
+      this->GetModel()->SendLogWARNING( oss.str() );
+      }
     }
 }