diff --git a/Code/Wrappers/ApplicationLauncherQt/otbApplicationLauncherQt.cxx b/Code/Wrappers/ApplicationLauncherQt/otbApplicationLauncherQt.cxx
index 40c4062733ac059d2d72661961ea197035f071bf..1ee8c1fc5bb3d2f61dd35fe543d21bac94f9457b 100644
--- a/Code/Wrappers/ApplicationLauncherQt/otbApplicationLauncherQt.cxx
+++ b/Code/Wrappers/ApplicationLauncherQt/otbApplicationLauncherQt.cxx
@@ -26,7 +26,7 @@
 using otb::Wrapper::Application;
 using otb::Wrapper::ApplicationRegistry;
 using otb::Wrapper::QtWidgetView;
-using otb::Wrapper::QtWidgetProgressReport;
+//using otb::Wrapper::QtWidgetProgressReport;
 using otb::Wrapper::QtWidgetSimpleProgressReport;
 
 int main(int argc, char* argv[])
@@ -88,17 +88,17 @@ int main(int argc, char* argv[])
   QObject::connect(gui, SIGNAL(QuitSignal()), mainWindow, SLOT(close()));
 
   // Create a progressReport object
-  QtWidgetSimpleProgressReport * progressReport =  new QtWidgetSimpleProgressReport(gui->GetModel());
-  progressReport->SetApplication(app);
+  //QtWidgetSimpleProgressReport * progressReport =  new QtWidgetSimpleProgressReport(gui->GetModel());
+  //progressReport->SetApplication(app);
 
   // Create a dock widget containg the progress widget
-  QDockWidget* qdock = new QDockWidget("Progress Reporting ...", mainWindow);
-  qdock->setWidget(progressReport);
+  //QDockWidget* qdock = new QDockWidget("Progress Reporting ...", mainWindow);
+  //qdock->setWidget(progressReport);
 
   // build the main window, central widget is the plugin view, other
   // are docked widget (progress, logs...)
   mainWindow->setCentralWidget(gui);
-  mainWindow->addDockWidget(Qt::BottomDockWidgetArea, qdock);
+  //mainWindow->addDockWidget(Qt::BottomDockWidgetArea, qdock);
   
   // Show the main window
   mainWindow->show();
diff --git a/Code/Wrappers/QtWidget/itkQtProgressBar.h b/Code/Wrappers/QtWidget/itkQtProgressBar.h
index daba4c66d65369bf30785195e0f10d0e4da017e8..41bb751c3ce137945624cce4cef7be500d7262be 100644
--- a/Code/Wrappers/QtWidget/itkQtProgressBar.h
+++ b/Code/Wrappers/QtWidget/itkQtProgressBar.h
@@ -14,6 +14,9 @@
      PURPOSE.  See the above copyright notices for more information.
 
 =========================================================================*/
+#ifndef __itkQtProgressBar_h
+#define __itkQtProgressBar_h
+
 #include <QtGui>
 #include "itkCommand.h"
 
@@ -55,3 +58,5 @@ private:
 
 
 }  // end of namespace
+
+#endif
diff --git a/Code/Wrappers/QtWidget/otbQtLogOutput.cxx b/Code/Wrappers/QtWidget/otbQtLogOutput.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..fd021d51b01ba7af0e2b855a5b08f461250a910d
--- /dev/null
+++ b/Code/Wrappers/QtWidget/otbQtLogOutput.cxx
@@ -0,0 +1,73 @@
+/*=========================================================================
+
+  Program:   ORFEO Toolbox
+  Language:  C++
+  Date:      $Date$
+  Version:   $Revision$
+
+
+  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+  See OTBCopyright.txt for details.
+
+
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notices for more information.
+
+=========================================================================*/
+
+#include<iostream>
+#include"otbQtLogOutput.h"
+
+
+namespace otb
+{
+
+/** Constructor */
+QtLogOutput::QtLogOutput()
+{
+}
+
+/** Destructor */
+QtLogOutput::~QtLogOutput()
+{
+}
+
+
+/** flush a buffer */
+void QtLogOutput::Flush()
+{
+}
+
+
+/** Write to a buffer */
+void QtLogOutput::Write(double timestamp)
+{
+  itk::OStringStream oss;
+  oss<<timestamp;
+  emit NewContentLog( QString(oss.str().c_str()) );
+}
+
+
+/** Write to a buffer */
+void QtLogOutput::Write(std::string const &content)
+{
+  emit NewContentLog( QString(content.c_str()) );
+}
+
+
+/** Write to a buffer */
+void QtLogOutput::Write(std::string const &content, double timestamp)
+{
+  itk::OStringStream oss;
+  oss<<timestamp << "  :  " << content;
+  emit NewContentLog( QString(oss.str().c_str()) );
+}
+
+void QtLogOutput::PrintSelf(std::ostream &os, itk::Indent indent) const
+{
+  Superclass::PrintSelf(os,indent);
+}
+
+}
+
diff --git a/Code/Wrappers/QtWidget/otbQtLogOutput.h b/Code/Wrappers/QtWidget/otbQtLogOutput.h
new file mode 100644
index 0000000000000000000000000000000000000000..20bfa5516c7966e8f8f71ac6d0bfed036579332e
--- /dev/null
+++ b/Code/Wrappers/QtWidget/otbQtLogOutput.h
@@ -0,0 +1,75 @@
+/*=========================================================================
+
+  Program:   ORFEO Toolbox
+  Language:  C++
+  Date:      $Date$
+  Version:   $Revision$
+
+
+  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+  See OTBCopyright.txt for details.
+
+
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notices for more information.
+
+=========================================================================*/
+#ifndef __otbQtLogOutput_h
+#define __otbQtLogOutput_h
+
+#include <QtGui>
+#include "itkStdStreamLogOutput.h"
+//#include "itkObjectFactory.h"
+//#include "itkProcessObject.h"
+#include "otbMacro.h"
+
+namespace otb
+{
+
+/** \class QtLogOutput
+ *  \brief Class that get log output and launch an event when received.
+ *
+ */
+
+class ITK_EXPORT QtLogOutput : public QObject, public itk::LogOutput
+{
+Q_OBJECT
+public:
+  typedef QtLogOutput                    Self;
+  typedef itk::LogOutput                 Superclass;
+  typedef itk::SmartPointer<Self>        Pointer;
+  typedef itk::SmartPointer<const Self>  ConstPointer;
+
+  itkTypeMacro(QtLogOutput, itk::LogOutput);
+  
+  itkNewMacro(QtLogOutput);
+
+  /** flush a buffer */
+  virtual void Flush();
+
+  /** Write to multiple outputs */
+  virtual void Write(double timestamp);
+
+  /** Write to a buffer */
+  virtual void Write(std::string const &content);
+
+  /** Write to a buffer */
+  virtual void Write(std::string const &content, double timestamp);
+
+signals:
+  void NewContentLog(QString);
+
+protected:
+  /** Constructor */
+  QtLogOutput();
+
+  /** Destructor */
+  virtual ~QtLogOutput();
+
+  void PrintSelf(std::ostream &os, itk::Indent indent) const;
+};
+
+}
+
+#endif
diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetProgressReport.h b/Code/Wrappers/QtWidget/otbWrapperQtWidgetProgressReport.h
index 7ca0721058bf56025cf68b1b12a5eba9659f35b6..d50f8adc675946b8a1d31511202f030a093f36f4 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetProgressReport.h
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetProgressReport.h
@@ -54,6 +54,7 @@ public:
     return m_CurrentDescription;
   }
 
+/*
   itk::ProcessObject* GetCurrentProcess()
   {
     return m_CurrentProcess;
@@ -68,10 +69,10 @@ public:
   {
     return m_Layout;
   }
-
+*/
 public slots:
   void RemoveLayout();
-  virtual void ReportProcess();
+  /*virtual */void ReportProcess();
 
   signals:
   void AddNewProcessToReport();
diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetSimpleProgressReport.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetSimpleProgressReport.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..6ee521b8f97bb5427c505044010728efaa8eaa68
--- /dev/null
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetSimpleProgressReport.cxx
@@ -0,0 +1,93 @@
+/*=========================================================================
+
+  Program:   ORFEO Toolbox
+  Language:  C++
+  Date:      $Date$
+  Version:   $Revision$
+
+
+  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+  See OTBCopyright.txt for details.
+
+
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notices for more information.
+
+=========================================================================*/
+
+#include "otbWrapperQtWidgetSimpleProgressReport.h"
+#include "otbWrapperOutputImageParameter.h"
+#include "itksys/SystemTools.hxx"
+
+#include "otbWrapperAddProcessToWatchEvent.h"
+
+namespace otb
+{
+namespace Wrapper
+{
+
+QtWidgetSimpleProgressReport::QtWidgetSimpleProgressReport(QtWidgetModel * model)
+{
+  m_Model = model;
+  connect(model, SIGNAL(SetProgressReportBegin()), this, SLOT(show()) );
+  connect(model, SIGNAL(SetProgressReportDone()), this, SLOT(close()) );
+  connect(model, SIGNAL(SetProgressReportDone()), this, SLOT(Init()) );
+  connect(this, SIGNAL(AddNewProcessToReport()), this, SLOT(ReportProcess()) );
+
+  m_Layout = new QVBoxLayout;
+  this->setLayout(m_Layout);
+
+  m_AddProcessCommand = AddProcessCommandType::New();
+  m_AddProcessCommand->SetCallbackFunction( this, &QtWidgetSimpleProgressReport::ProcessEvent );
+
+  m_Bar =  new itk::QtProgressBar(this);
+  m_Label = new QLabel("No process...");
+  connect( m_Bar, SIGNAL(SetValueChanged(int)), m_Bar, SLOT(setValue(int)) );
+  connect( m_Model, SIGNAL(SetProgressReportDone()), m_Bar, SLOT(reset()) );
+
+  m_Layout->addWidget(m_Label);
+  m_Layout->addWidget(m_Bar);
+
+  this->show();
+}
+
+QtWidgetSimpleProgressReport::~QtWidgetSimpleProgressReport()
+{
+}
+
+void QtWidgetSimpleProgressReport::SetApplication(Application::Pointer app)
+{
+  m_Application = app;
+  m_Application->AddObserver( AddProcessToWatchEvent(), m_AddProcessCommand.GetPointer() );
+}
+
+void
+QtWidgetSimpleProgressReport::ProcessEvent( itk::Object * caller,
+                                      const itk::EventObject & event )
+{
+  if( typeid( otb::Wrapper::AddProcessToWatchEvent ) == typeid( event ) )
+    {
+    const AddProcessToWatchEvent* eventToWacth = dynamic_cast< const  AddProcessToWatchEvent*> ( &event );
+
+    m_CurrentProcess = eventToWacth->GetProcess();
+    m_CurrentDescription =  eventToWacth->GetProcessDescription();
+    emit AddNewProcessToReport();
+    }
+}
+
+void QtWidgetSimpleProgressReport::ReportProcess()
+{
+  m_Bar->Observe(m_CurrentProcess);
+  m_Label->setText(QString(m_CurrentDescription.c_str()));  
+}
+
+
+void QtWidgetSimpleProgressReport::Init()
+{
+  m_Bar->setValue(0);
+  m_Label->setText("No process yet...");
+}
+
+}
+}
diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetSimpleProgressReport.h b/Code/Wrappers/QtWidget/otbWrapperQtWidgetSimpleProgressReport.h
new file mode 100644
index 0000000000000000000000000000000000000000..8fea9e32ffc5d6cf18b905d532be95148a166a82
--- /dev/null
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetSimpleProgressReport.h
@@ -0,0 +1,79 @@
+/*=========================================================================
+
+  Program:   ORFEO Toolbox
+  Language:  C++
+  Date:      $Date$
+  Version:   $Revision$
+
+
+  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+  See OTBCopyright.txt for details.
+
+
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notices for more information.
+
+=========================================================================*/
+#ifndef __otbWrapperQtWidgetSimpleProgressReport_h
+#define __otbWrapperQtWidgetSimpleProgressReport_h
+
+#include <QtGui>
+#include "otbWrapperApplication.h"
+#include "otbWrapperQtWidgetModel.h"
+#include "itkProcessObject.h"
+#include "itkQtProgressBar.h"
+
+#include "itkCommand.h"
+
+namespace otb
+{
+namespace Wrapper
+{
+
+/** \class
+ * \brief Create a widget reporting the progress of the application
+ *        process.
+ */
+class QtWidgetSimpleProgressReport : public QWidget
+{
+  Q_OBJECT
+public:
+  QtWidgetSimpleProgressReport(QtWidgetModel * model);
+  virtual ~QtWidgetSimpleProgressReport();
+  
+  void SetApplication(Application::Pointer app);
+  
+  typedef itk::MemberCommand< QtWidgetSimpleProgressReport >  AddProcessCommandType;
+  
+  void ProcessEvent( itk::Object * caller, const itk::EventObject & event );
+ 
+public slots:
+  void Init();
+  void ReportProcess();
+
+  signals:
+  void AddNewProcessToReport();
+
+private:
+  QtWidgetSimpleProgressReport(const QtWidgetSimpleProgressReport&); //purposely not implemented
+  void operator=(const QtWidgetSimpleProgressReport&); //purposely not
+                                                       //implemented
+
+  Application::Pointer              m_Application;
+  QtWidgetModel *                   m_Model;
+  QVBoxLayout *                     m_Layout;
+
+  AddProcessCommandType::Pointer    m_AddProcessCommand;
+  itk::ProcessObject*               m_CurrentProcess;
+  std::string                       m_CurrentDescription;
+
+  itk::QtProgressBar * m_Bar;
+  QLabel * m_Label;
+
+};
+
+}
+}
+
+#endif
diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetView.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetView.cxx
index 4746e7d1b27641af9580afa2a614f3e7666c9ed4..29f6ded1f2295530af97c462261d4d17c94da67d 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetView.cxx
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetView.cxx
@@ -21,6 +21,7 @@
 #include "otbWrapperQtWidgetParameterFactory.h"
 #include "otbWrapperQtWidgetProgressReport.h"
 #include "otbWrapperOutputImageParameter.h"
+#include "otbWrapperQtWidgetSimpleProgressReport.h"
 
 #include "itksys/SystemTools.hxx"
 
@@ -48,15 +49,21 @@ void QtWidgetView::CreateGui()
 
   mainLayout->addWidget(CreateHeader());
   tab->addTab(CreateInputWidgets(), "Parameters");
-  mainLayout->addWidget(tab);
   QTextEdit *log = new QTextEdit();
   connect( m_Model->GetLogOutput(), SIGNAL(NewContentLog(QString)), log, SLOT(append(QString) ) );
   tab->addTab(log, "Logs");
   QtWidgetProgressReport* prog =  new QtWidgetProgressReport(m_Model);
   prog->SetApplication(m_Application);
   tab->addTab(prog, "Progress Reporting ...");
-  //mainLayout->addWidget(CreateInputWidgets());
-  mainLayout->addWidget(CreateFooter());
+  mainLayout->addWidget(tab);
+
+
+  QtWidgetSimpleProgressReport * progressReport =  new QtWidgetSimpleProgressReport(m_Model);
+  progressReport->SetApplication(m_Application);
+  QHBoxLayout *footLayout = new QHBoxLayout;
+  footLayout->addWidget(progressReport);
+  footLayout->addWidget(CreateFooter());
+  mainLayout->addLayout(footLayout);
 
   QGroupBox *mainGroup = new QGroupBox();
   mainGroup->setLayout(mainLayout);
@@ -124,7 +131,7 @@ QWidget* QtWidgetView::CreateFooter()
   // an HLayout with two buttons : Execute and Quit
   QGroupBox *footerGroup = new QGroupBox;
   QHBoxLayout *footerLayout = new QHBoxLayout;
-
+ 
   footerGroup->setFixedHeight(40);
   footerGroup->setContentsMargins(0, 0, 0, 0);
   footerLayout->setContentsMargins(5, 5, 5, 5);
@@ -144,6 +151,7 @@ QWidget* QtWidgetView::CreateFooter()
   footerLayout->addStretch();
   footerLayout->addWidget(m_ExecButton);
   footerLayout->addWidget(m_QuitButton);
+
   footerGroup->setLayout(footerLayout);
 
   return footerGroup;
diff --git a/Testing/Code/Wrappers/Qt/otbWrapperQtLogOutput.cxx b/Testing/Code/Wrappers/Qt/otbWrapperQtLogOutput.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..bcadd3cc5dab77c6cc36dae50939f53b84e6a004
--- /dev/null
+++ b/Testing/Code/Wrappers/Qt/otbWrapperQtLogOutput.cxx
@@ -0,0 +1,26 @@
+/*=========================================================================
+
+  Program:   ORFEO Toolbox
+  Language:  C++
+  Date:      $Date$
+  Version:   $Revision$
+
+
+  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+  See OTBCopyright.txt for details.
+
+
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notices for more information.
+
+=========================================================================*/
+
+#include "otbQtLogOutput.h"
+
+
+int otbQtLogOutputNew(int /*argc*/, char* /*argv[]*/)
+{
+  otb::Wrapper::QtLogOutput::Pointer log = otb::Wrapper::QtLogOutput::New();
+  return EXIT_SUCCESS;
+}