diff --git a/Modules/Wrappers/ApplicationEngine/src/otbWrapperParameterGroup.cxx b/Modules/Wrappers/ApplicationEngine/src/otbWrapperParameterGroup.cxx
index 22f15036691ea9670056270231f84ce03f059966..93c76d99f6ce4dced9ede92f6803cf00032a5745 100644
--- a/Modules/Wrappers/ApplicationEngine/src/otbWrapperParameterGroup.cxx
+++ b/Modules/Wrappers/ApplicationEngine/src/otbWrapperParameterGroup.cxx
@@ -756,8 +756,9 @@ ParameterGroup::GetParameterByKey(std::string name, bool follow)
     itkExceptionMacro(<< "Could not find parameter " << name)
     }
 
-  // follow proxy parameters
-  if (follow)
+  // follow proxy parameters (resolve intermediate group parameter because
+  // we need to get to the requested parameter)
+  if (follow || splitName.size() > 1)
     {
     Parameter *rawParam = this->ResolveParameter(parentParam.GetPointer());
     parentParam = rawParam;