diff --git a/Code/Core/otbWrapperChoiceParameter.cxx b/Code/Core/otbWrapperChoiceParameter.cxx
index 8f8465b1d5ee49af1bf535e9a58347aa23914076..2f0245cc0e20381d6df15bc76d85bf0d81dc941c 100644
--- a/Code/Core/otbWrapperChoiceParameter.cxx
+++ b/Code/Core/otbWrapperChoiceParameter.cxx
@@ -144,10 +144,10 @@ ChoiceParameter::GetAnyValue()
 
 
 /** Return any value */
-std::list<std::string>
+std::vector<std::string>
 ChoiceParameter::GetParametersKeys()
 {
-  std::list<std::string> parameters;
+  std::vector<std::string> parameters;
 
   ChoiceList::iterator cit = m_ChoiceList.begin();
 
@@ -155,8 +155,8 @@ ChoiceParameter::GetParametersKeys()
     {
     if (cit->m_AssociatedParameter)
       {
-      std::list<std::string> subparams = cit->m_AssociatedParameter->GetParametersKeys();
-      for (std::list<std::string>::const_iterator it = subparams.begin();
+      std::vector<std::string> subparams = cit->m_AssociatedParameter->GetParametersKeys();
+      for (std::vector<std::string>::const_iterator it = subparams.begin();
            it != subparams.end(); ++it)
         {
         parameters.push_back( cit->m_Key + "."  + *it );
diff --git a/Code/Core/otbWrapperChoiceParameter.h b/Code/Core/otbWrapperChoiceParameter.h
index 53e3b69b7fe617474f7a4bbbf5c2a58a633a6e2c..b35af25587b0550bd19715097bb9e3ab8c46a007 100644
--- a/Code/Core/otbWrapperChoiceParameter.h
+++ b/Code/Core/otbWrapperChoiceParameter.h
@@ -63,7 +63,7 @@ public:
   /** Get the ParameterGroup associated to a choice value */
   ParameterGroup::Pointer GetChoiceParameterGroupByKey( std::string choiceKey );
 
-  std::list<std::string> GetParametersKeys();
+  std::vector<std::string> GetParametersKeys();
 
   /** Get the number of available choice */
   unsigned int GetNbChoices( void );