diff --git a/Code/Core/otbWrapperChoiceParameter.h b/Code/Core/otbWrapperChoiceParameter.h
index bbb71b17abd29010e31ef9a83b583aff932e1640..212164245a042659bb0a10994ef56be896ad2a69 100644
--- a/Code/Core/otbWrapperChoiceParameter.h
+++ b/Code/Core/otbWrapperChoiceParameter.h
@@ -37,7 +37,7 @@ class ChoiceParameter
 public:
   /** Standard class typedef */
   typedef ChoiceParameter               Self;
-  typedef itk::LightObject              Superclass;
+  typedef Parameter                     Superclass;
   typedef itk::SmartPointer<Self>       Pointer;
   typedef itk::SmartPointer<const Self> ConstPointer;
 
@@ -50,12 +50,12 @@ public:
   /** Add a value to the choice */
   void AddChoice( std::string key, Parameter::Pointer param )
   {
-    m_ChoiceList.push_back(key, param);
+    m_ChoiceList.push_back(std::make_pair(key, param));
   }
 
   Parameter::Pointer GetChoice( int i )
   {
-    return m_ChoiceList[i];
+    return m_ChoiceList[i].second;
   }
 
   unsigned int GetNbChoice( void )
@@ -93,7 +93,9 @@ private:
   ChoiceParameter(const ChoiceParameter &); //purposely not implemented
   void operator =(const ChoiceParameter&); //purposely not implemented
 
-  typedef std::vector<std::string, Parameter::Pointer> ChoiceList;
+  typedef std::pair<std::string, Parameter::Pointer> Choice;
+
+  typedef std::vector<Choice> ChoiceList;
   ChoiceList m_ChoiceList;
 
   unsigned int m_CurrentChoice;
diff --git a/Code/Core/otbWrapperEmptyParameter.h b/Code/Core/otbWrapperEmptyParameter.h
index a1a6a4f909c6dd789e353fa23efcc4a282cd2cf5..6a38ffd9a89e5efa329c065fedfb38b51140a45c 100644
--- a/Code/Core/otbWrapperEmptyParameter.h
+++ b/Code/Core/otbWrapperEmptyParameter.h
@@ -34,7 +34,7 @@ class EmptyParameter
 public:
   /** Standard class typedef */
   typedef EmptyParameter                Self;
-  typedef itk::LightObject              Superclass;
+  typedef Parameter                     Superclass;
   typedef itk::SmartPointer<Self>       Pointer;
   typedef itk::SmartPointer<const Self> ConstPointer;
 
diff --git a/Code/Core/otbWrapperStringParameter.h b/Code/Core/otbWrapperStringParameter.h
index 58d9c592ce13ad484c09edd12c00677ee8b211d3..7d5e0891a5a8918cd5a534c783d544b3343c9654 100644
--- a/Code/Core/otbWrapperStringParameter.h
+++ b/Code/Core/otbWrapperStringParameter.h
@@ -34,7 +34,7 @@ class StringParameter
 public:
   /** Standard class typedef */
   typedef StringParameter               Self;
-  typedef itk::LightObject              Superclass;
+  typedef Parameter                     Superclass;
   typedef itk::SmartPointer<Self>       Pointer;
   typedef itk::SmartPointer<const Self> ConstPointer;
 
diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetChoiceParameterFactory.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetChoiceParameterFactory.cxx
index a3874527a55ce8c475657ff0f4e81c308802276b..0e506e6669c8685f47464706058c777b22a0189d 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetChoiceParameterFactory.cxx
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetChoiceParameterFactory.cxx
@@ -54,7 +54,7 @@ QWidget * QtWidgetChoiceParameterFactory::CreateQtWidget(Parameter * param)
   combobox->setToolTip(choiceParam->GetDescription());
 
 
-  for (unsigned int i = O; i < choiceParam->GetNbChoice(); ++i)
+  for (unsigned int i = 0; i < choiceParam->GetNbChoice(); ++i)
     {
     combobox->addItem( "test", QVariant("test") );
     }
diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetChoiceParameterFactory.h b/Code/Wrappers/QtWidget/otbWrapperQtWidgetChoiceParameterFactory.h
index f3f4ad95eeefc039d43538538a0c88641338386d..7211a431fc6d1ddf2014c1824b648bc273257229 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetChoiceParameterFactory.h
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetChoiceParameterFactory.h
@@ -47,7 +47,7 @@ public:
 
 protected:
   QtWidgetChoiceParameterFactory();
-  ~QtWidgetChoiceParameterFactory();
+  virtual ~QtWidgetChoiceParameterFactory();
 
 private:
   QtWidgetChoiceParameterFactory(const Self&); //purposely not implemented