diff --git a/Code/Core/otbWrapperInputImageParameter.cxx b/Code/Core/otbWrapperInputImageParameter.cxx
index 08554076cd7563c3f715bdc1722e7c48c6b37bb3..f25fbed3cad49a81b8bea53e1cf5460665f7668b 100644
--- a/Code/Core/otbWrapperInputImageParameter.cxx
+++ b/Code/Core/otbWrapperInputImageParameter.cxx
@@ -16,6 +16,7 @@
 
 =========================================================================*/
 #include "otbWrapperInputImageParameter.h"
+#include "itksys/SystemTools.hxx"
 
 namespace otb
 {
@@ -35,13 +36,29 @@ InputImageParameter::~InputImageParameter()
 void
 InputImageParameter::SetFromFileName(const std::string& filename)
 {
-  ImageFileReaderType::Pointer reader = ImageFileReaderType::New();
-  reader->SetFileName(filename);
-  reader->UpdateOutputInformation();
+  // First clear previous file choosen
+  this->ClearValue();
 
-  // everything went fine, store the object references
-  m_Reader = reader;
-  m_Image = reader->GetOutput();
+  // TODO : when the logger will be available, redirect the exception
+  // in the logger (like what is done in MsgReporter)
+  if (!filename.empty()
+      && itksys::SystemTools::FileExists(filename.c_str()))
+    {
+    ImageFileReaderType::Pointer reader = ImageFileReaderType::New();
+    reader->SetFileName(filename);
+    try
+      {
+      reader->UpdateOutputInformation();
+      }
+    catch(itk::ExceptionObject & err)
+      {
+      this->ClearValue();
+      }
+
+    // everything went fine, store the object references
+    m_Reader = reader;
+    m_Image = reader->GetOutput();
+    }
 }
 
 std::string