diff --git a/Code/Wrappers/ApplicationLauncherQt/otbApplicationLauncherQt.cxx b/Code/Wrappers/ApplicationLauncherQt/otbApplicationLauncherQt.cxx
index 50e7dafd79b87226d1c1884f2ca60acbe5d66491..ee59694ae107efa09b4bb043c5e6205ae9d8029f 100644
--- a/Code/Wrappers/ApplicationLauncherQt/otbApplicationLauncherQt.cxx
+++ b/Code/Wrappers/ApplicationLauncherQt/otbApplicationLauncherQt.cxx
@@ -50,21 +50,11 @@ int main(int argc, char* argv[])
     std::list<std::string>::const_iterator it = modulePathList.begin();
     while( it != modulePathList.end() )
       {
-      std::string modulePath = *it;
-
-      specificEnv += *it;
+      ApplicationRegistry::AddApplicationPath( *(it) );
       ++it;
-      if (it != modulePathList.end())
-        specificEnv += ":";
       }
-
-    // do NOT use putenv() directly, since the string memory must be managed carefully
-    itksys::SystemTools::PutEnv(specificEnv.c_str());
     }
 
-  // Reload factories to take into account new path
-  itk::ObjectFactoryBase::ReHash();
-
   // Create module
   Application::Pointer app = ApplicationRegistry::CreateApplication(moduleName);
   if (app.IsNull())
diff --git a/Code/Wrappers/CommandLine/otbWrapperCommandLineLauncher.cxx b/Code/Wrappers/CommandLine/otbWrapperCommandLineLauncher.cxx
index 38db567cdb9e6b099fc0feba143a90913a267ccf..eaefbd445e0ed24d4e6d64ff99010fe07d30bca6 100644
--- a/Code/Wrappers/CommandLine/otbWrapperCommandLineLauncher.cxx
+++ b/Code/Wrappers/CommandLine/otbWrapperCommandLineLauncher.cxx
@@ -105,7 +105,12 @@ CommandLineLauncher::Load()
     return false;
     }
 
-  this->LoadPath();
+  if( this->LoadPath() == false )
+    {
+    std::cerr << "ERROR: At least one specifed path within \""<< m_Parser->GetAttributAsString(m_Parser->GetModulePathKey(), m_Expression)<<"\" is invalid..." <<std::endl;
+    return false;
+    }
+
   this->LoadApplication();
 
   return true;
@@ -225,31 +230,25 @@ CommandLineLauncher::BeforeExecute()
   return true;
 }
 
-void
+bool
 CommandLineLauncher::LoadPath()
 {
   std::vector<std::string> pathList;
   // If users has set path...
   if( m_Parser->GetPaths( pathList, m_Expression ) == CommandLineParser::OK )
     {
-    // Contain paths into a string, separating each path with ":"
-    m_Path = std::string("");
     for( unsigned i=0; i<pathList.size(); i++)
       {
-      m_Path.append(pathList[i]);
-      if( i < pathList.size()-1 )
-        {
-        m_Path.append(":");
-        }
+      std::cout<<pathList[i]<<std::endl;
+      ApplicationRegistry::AddApplicationPath(pathList[i]);
       }
-
-    std::string specificEnv("ITK_AUTOLOAD_PATH=");
-    specificEnv.append(m_Path);
-    // do NOT use putenv() directly, since the string memory must be managed carefully
-    itksys::SystemTools::PutEnv(specificEnv.c_str());
-    // Reload factories to take into account new path
-    itk::ObjectFactoryBase::ReHash();
     }
+  else
+    {
+    return false;
+    }
+
+  return true;
 }
 
 
diff --git a/Code/Wrappers/CommandLine/otbWrapperCommandLineLauncher.h b/Code/Wrappers/CommandLine/otbWrapperCommandLineLauncher.h
index d137dee04e81716939efbd9ae21055f7159f6d66..7ea9cbeb688fa470c67b26897342dd01c37271c8 100644
--- a/Code/Wrappers/CommandLine/otbWrapperCommandLineLauncher.h
+++ b/Code/Wrappers/CommandLine/otbWrapperCommandLineLauncher.h
@@ -106,7 +106,7 @@ protected:
   virtual ~CommandLineLauncher();
 
   /** Load the executable path. It looks for the key --modulePath, extract and interpret as path the following strings. */
-  void LoadPath();
+  bool LoadPath();
 
  /** Load the application calling the CreateApplication method of the ApplicationRegistry classes.
   * Pay attention, the executable paths have to be loaded or set in the environment before calling the function. */
diff --git a/Code/Wrappers/CommandLine/otbWrapperCommandLineParser.cxx b/Code/Wrappers/CommandLine/otbWrapperCommandLineParser.cxx
index 436c4f3d72c6ea5a0b4ac70b6d8a1dbfc3973f70..fc3a57f325bd4dc5850b120a9fffe0cb89343b21 100644
--- a/Code/Wrappers/CommandLine/otbWrapperCommandLineParser.cxx
+++ b/Code/Wrappers/CommandLine/otbWrapperCommandLineParser.cxx
@@ -62,6 +62,7 @@ CommandLineParser::GetPaths( std::vector<std::string> & paths, const std::string
     std::string fullPath = itksys::SystemTools::CollapseFullPath(pathAttribut[i].c_str());
     if( !itksys::SystemTools::FileIsDirectory(fullPath.c_str()) )
       {
+  std::cout<<"module path INVALIDMODULEPATH"<<std::endl;
       return INVALIDMODULEPATH;
       }
     paths.push_back(fullPath);