diff --git a/CMakeLists.txt b/CMakeLists.txt
index 850dbcfe3533300ab3b97a91e5d188bedeea2048..4443440d48e545eaac05e4a07ac51a0f3e02cbfe 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -51,7 +51,7 @@ ENDIF(OTB_FOUND)
 
 
 
-OPTION(OTB_USE_QT "Generate Qt wrappers for Applications" OFF)
+OPTION(OTB_USE_QT "Generate Qt wrappers for Applications" ON)
 IF(OTB_USE_QT)
   FIND_PACKAGE(Qt4 REQUIRED)
   SET(QT_USE_QTXML 1)
diff --git a/Code/Core/CMakeLists.txt b/Code/Core/CMakeLists.txt
index acdc19e6aa8e03fa5218774fdba2027d29326fd4..a011e5dd2bc407f9fde907cc123341a46d208cf0 100644
--- a/Code/Core/CMakeLists.txt
+++ b/Code/Core/CMakeLists.txt
@@ -1,4 +1,4 @@
 FILE(GLOB srcs "*.cxx")
 
-ADD_LIBRARY(otbWrapperCore ${srcs})
-TARGET_LINK_LIBRARIES(otbWrapperCore OTBCommon OTBIO)
+ADD_LIBRARY(OTBWrapperCore ${srcs})
+TARGET_LINK_LIBRARIES(OTBWrapperCore OTBCommon OTBIO)
diff --git a/Code/Core/otbWrapperApplication.cxx b/Code/Core/otbWrapperApplication.cxx
index a78a046e5e0ba3c3dec23b06b7f87fbfa5341a07..3a9be2e9c6725b3899e3c7bbfb0d0a09cfd971c7 100644
--- a/Code/Core/otbWrapperApplication.cxx
+++ b/Code/Core/otbWrapperApplication.cxx
@@ -23,15 +23,11 @@ namespace otb
 namespace Wrapper
 {
 
-Application::Application()
-{
-  //m_ParameterList = ParameterList::New();
-}
+Application::Application(): m_Name(""), m_Description("")
+{}
 
 Application::~Application()
-{
-
-}
+{}
 
 }
 }
diff --git a/Code/Core/otbWrapperApplication.h b/Code/Core/otbWrapperApplication.h
index 9cec9bc86b36188fbfbf44a9af7c0330b8996a59..335ae315ea130fc3151068f11f7888e60e7cd0b4 100644
--- a/Code/Core/otbWrapperApplication.h
+++ b/Code/Core/otbWrapperApplication.h
@@ -19,8 +19,10 @@
 #define __otbWrapperApplication_h
 
 #include <string>
+#include "otbMacro.h"
 #include "itkObject.h"
 #include "otbWrapperParameterList.h"
+#include "itkObjectFactory.h"
 
 namespace otb
 {
@@ -35,57 +37,53 @@ namespace Wrapper
 class ITK_EXPORT Application : public itk::Object
 {
 public:
-  /** Standard class typedefs. */
-  typedef Application                          Self;
-  typedef itk::Object                          Superclass;
-  typedef itk::SmartPointer<Self>              Pointer;
-  typedef itk::SmartPointer<const Self>        ConstPointer;
+/** Standard class typedefs. */
+typedef Application                          Self;
+typedef itk::Object                          Superclass;
+typedef itk::SmartPointer<Self>              Pointer;
+typedef itk::SmartPointer<const Self>        ConstPointer;
 
-  /** Defining ::New() static method */
-  itkNewMacro(Self);
+/** Defining ::New() static method */
+itkNewMacro(Self);
 
-  /** RTTI support */
-  itkTypeMacro(Application,itk::Object);
+/** RTTI support */
+itkTypeMacro(Application,itk::Object);
 
-  std::string GetName()
-  {
-    return m_Name;
-  }
+/** Set the parameter name */
+itkSetStringMacro(Name);
 
-  std::string GetDescription()
-  {
-    return m_Description;
-  }
+/** Get the parameter name */
+itkGetStringMacro(Name);
 
-  ParameterList* GetParameterList();
+/** Set the parameter description */
+itkSetStringMacro(Description);
 
-  virtual int Execute() { return 0;}
+/** Get the parameter description */
+itkGetStringMacro(Description);
 
-protected:
-  Application();
-  virtual ~Application();
+ParameterList* GetParameterList()
+          {
+  return m_ParameterList;
+          }
 
-private:
-  Application(const Application &); //purposely not implemented
-  void operator =(const Application&); //purposely not implemented
+virtual int Execute() {return 0;}
 
-  void SetName(std::string s)
-  {
-    m_Name = s;
-  }
+protected:
+/** Constructor */
+Application();
+virtual ~Application();
 
-  void SetDescription(std::string s)
-  {
-    m_Description = s;
-  }
+private:
+Application(const Application &); //purposely not implemented
+void operator =(const Application&); //purposely not implemented
 
-  std::string            m_Name;
-  std::string            m_Description;
-  ParameterList::Pointer m_ParameterList;
-};
+std::string            m_Name;
+std::string            m_Description;
+ParameterList::Pointer m_ParameterList;
 
+}; //end class
 
-}
-}
+} // end namespace Wrapper
+} //end namespace otb
 
-#endif // __otbWrapperApplicationOptions_h_
+#endif // __otbWrapperApplication_h_
diff --git a/Code/Wrappers/QtWidget/CMakeLists.txt b/Code/Wrappers/QtWidget/CMakeLists.txt
index 243a86373a53bf9e12c5c43fa5fb8fa3c2e17638..92c136ea85dfefae6a753ac0720871629a60ca82 100644
--- a/Code/Wrappers/QtWidget/CMakeLists.txt
+++ b/Code/Wrappers/QtWidget/CMakeLists.txt
@@ -2,4 +2,4 @@
 FILE(GLOB srcs "*.cxx")
 
 ADD_LIBRARY(OTBWrapperQtWidget ${srcs})
-TARGET_LINK_LIBRARIES(OTBWrapperQtWidget OTBCommon OTBIO otbWrapperCore)
+TARGET_LINK_LIBRARIES(OTBWrapperQtWidget OTBCommon OTBIO OTBWrapperCore)
diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt
index 2303abe295d46d8816fe72d6001b8cabf16eef5a..8466a719a6789882fafde5a85547d26c7b964cf3 100644
--- a/Testing/CMakeLists.txt
+++ b/Testing/CMakeLists.txt
@@ -37,6 +37,12 @@ ADD_TEST(owTvNumericalParameter ${OTB_WRAPPER_TESTS}
 	"mykey"
 	"my description"
   )
+  
+# Application class test
+ADD_TEST(owTuApplication ${OTB_WRAPPER_TESTS}
+	otbWrapperApplicationNew
+  )
+  
 # ----------------Source files CXX -----------------------------------
 
 SET(Wrapper_SRCS
@@ -44,10 +50,10 @@ otbWrapperTests.cxx
 otbWrapperParameterTest.cxx
 otbWrapperNumericalParameterTest.cxx
 otbWrapperEmptyParameterTest.cxx
-#otbWrapperApplicationTest.cxx
+otbWrapperApplicationTest.cxx
 otbWrapperParameterListTest.cxx
 )
 
 ADD_EXECUTABLE(otbWrapperTests ${Wrapper_SRCS})
-TARGET_LINK_LIBRARIES(otbWrapperTests OTBIO OTBCommon ITKIO ITKCommon OTBTesting)
+TARGET_LINK_LIBRARIES(otbWrapperTests OTBIO OTBCommon ITKIO ITKCommon OTBTesting OTBWrapperCore)
 
diff --git a/Testing/otbWrapperApplicationTest.cxx b/Testing/otbWrapperApplicationTest.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..421e9b3f6e97ca9af5d383513b0e002f01bdf8fa
--- /dev/null
+++ b/Testing/otbWrapperApplicationTest.cxx
@@ -0,0 +1,30 @@
+/*=========================================================================
+
+  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.
+
+=========================================================================*/
+#if defined(_MSC_VER)
+#pragma warning ( disable : 4786 )
+#endif
+
+#include "otbWrapperApplication.h"
+
+int otbWrapperApplicationNew(int argc, char* argv[])
+{
+  typedef otb::Wrapper::Application ApplicationType;
+  ApplicationType::Pointer application = ApplicationType::New();
+
+  return EXIT_SUCCESS;
+}
diff --git a/Testing/otbWrapperTests.cxx b/Testing/otbWrapperTests.cxx
index d02cd1410e475e1bc9a0017dadcc64b96bb4e1c1..80a054292bd458cd6e228e1663027bddb4e754f9 100644
--- a/Testing/otbWrapperTests.cxx
+++ b/Testing/otbWrapperTests.cxx
@@ -31,6 +31,6 @@ void RegisterTests()
   REGISTER_TEST(otbWrapperNumericalParameterNew);
   REGISTER_TEST(otbWrapperNumericalParameterTest1);
   REGISTER_TEST(otbWrapperEmptyParameterNew);
-  //REGISTER_TEST(otbWrapperApplicationNew);
+  REGISTER_TEST(otbWrapperApplicationNew);
   REGISTER_TEST(otbWrapperParameterListNew);
 }