diff --git a/Applications/Segmentation/otbMeanShiftSegmentation.cxx b/Applications/Segmentation/otbMeanShiftSegmentation.cxx
index 41433c58c169107ad1bb46767115fe744f1b12b9..ce2ef00b87bba37064d4a67184f0a0a83891e6b5 100644
--- a/Applications/Segmentation/otbMeanShiftSegmentation.cxx
+++ b/Applications/Segmentation/otbMeanShiftSegmentation.cxx
@@ -58,10 +58,15 @@ private:
     AddDocTag(Tags::Segmentation);
 
     AddParameter(ParameterType_InputImage,   "in",     "Input Image");
+    SetParameterDescription( "in", "The input image." );
     AddParameter(ParameterType_OutputImage,  "fout",    "Filtered output");
+    SetParameterDescription( "fout", "The filtered output image." );
     AddParameter(ParameterType_OutputImage,  "cout",    "Clustered output");
+    SetParameterDescription( "cout", "The clustered output image." );
     AddParameter(ParameterType_OutputImage,  "lout",    "Label output");
+    SetParameterDescription( "lout", "The label output image." );
     AddParameter(ParameterType_OutputImage,  "cbout",   "Cluster Boundaries output");
+    SetParameterDescription( "cbout", "The cluster boundaries output image." );
     MandatoryOff("fout");
     MandatoryOff("cout");
     MandatoryOff("lout");
@@ -72,9 +77,13 @@ private:
    //   MandatoryOff("ram");
 
     AddParameter(ParameterType_Int,          "spatialr",   "Spatial radius");
+    SetParameterDescription( "spatialr", "Spatial radius defining neighborhood." );
     AddParameter(ParameterType_Float,        "ranger",   "Range radius");
+    SetParameterDescription( "ranger", "Range radius defining the interval in the color space." );
     AddParameter(ParameterType_Int,          "minsize",   "Min region size");
+    SetParameterDescription( "minsize", "Minimun size of a region to be kept after clustering." );
     AddParameter(ParameterType_Float,        "scale",   "Scale");
+    SetParameterDescription( "scale", "Scale to stretch the image before processing." );
     SetDefaultParameterInt("spatialr",   5);
     SetDefaultParameterFloat("ranger",   15.0);
     SetDefaultParameterInt("minsize",    100);
diff --git a/Applications/Utils/otbConcatenateVectorData.cxx b/Applications/Utils/otbConcatenateVectorData.cxx
index 2a44e93ee01cb71ed8b5a7111025a226a4d8d47c..d937771ef6ea947e05e2a26a370c3960c9c29e44 100644
--- a/Applications/Utils/otbConcatenateVectorData.cxx
+++ b/Applications/Utils/otbConcatenateVectorData.cxx
@@ -50,7 +50,7 @@ private:
     SetDescription("Concatenate VectorDatas");
 
     SetDocName("Concatenate");
-    SetDocLongDescription("This application concatenates a list of VectorData to produce a unique VectorData as output"
+    SetDocLongDescription("This application concatenates a list of VectorData to produce a unique VectorData as output."
                           "Note that the VectorDatas must be of the same type (Storing polygons only, lines only, or points only)");
     SetDocLimitations("None");
     SetDocAuthors("OTB-Team");
@@ -62,6 +62,7 @@ private:
     SetParameterDescription("vd", "VectorData files to be concatenated in an unique VectorData");
 
     AddParameter(ParameterType_OutputVectorData, "out", "Concatenated VectorData");
+    SetParameterDescription("out", "Output conctenated VectorData");
 
     // Doc example parameter settings
     SetDocExampleParameterValue("vd", "ToulousePoints-examples.shp ToulouseRoad-examples.shp");
diff --git a/Applications/Utils/otbExtractROI.cxx b/Applications/Utils/otbExtractROI.cxx
index d0a24c7af6383c241a284c26776714de28147627..f20ac4711ea0fa1b559a6a49091ea7c1a242c485 100644
--- a/Applications/Utils/otbExtractROI.cxx
+++ b/Applications/Utils/otbExtractROI.cxx
@@ -87,6 +87,7 @@ private:
 
     // Channelist Parameters
     AddParameter(ParameterType_ListView,  "cl", "Output Image channels");
+    SetParameterDescription("cl","Channels to write in the output image.");
 
     // Doc example parameter settings
     SetDocExampleParameterValue("in", "VegetationIndex.hd");
diff --git a/Applications/Utils/otbMultiResolutionPyramid.cxx b/Applications/Utils/otbMultiResolutionPyramid.cxx
index b9bdb51e0a59c4743eced203de691cab8d2c92f9..e0e77e6dac6b31f3f0b66fee973eb87fce55316e 100644
--- a/Applications/Utils/otbMultiResolutionPyramid.cxx
+++ b/Applications/Utils/otbMultiResolutionPyramid.cxx
@@ -64,7 +64,7 @@ private:
 
     // Documentation
     SetDocName("Multi Resolution Pyramid");
-    SetDocLongDescription("This application builds a multi-resolution pyramid of the input image. USer can specified the number of levels of the pyramid and the subsampling factor. To spped ip the process, you can use the fast scheme option");
+    SetDocLongDescription("This application builds a multi-resolution pyramid of the input image. User can specified the number of levels of the pyramid and the subsampling factor. To speed up the process, you can use the fast scheme option");
     SetDocLimitations("None");
     SetDocAuthors("OTB-Team");
     SetDocSeeAlso(" ");
@@ -89,9 +89,11 @@ private:
 
     AddParameter(ParameterType_Int, "sfactor", "Subsampling factor");
     SetDefaultParameterInt("sfactor", 2);
+    SetParameterDescription( "sfactor", "Subsampling factor between each level of the pyramid (default is 2).");
 
-    AddParameter(ParameterType_Float,  "vfactor", "Subsampling factor");
+    AddParameter(ParameterType_Float,  "vfactor", "Variance factor");
     SetDefaultParameterFloat("vfactor", 0.6);
+    SetParameterDescription( "vfactor", "Variance factor use in smoothing. It is multiplied by the subsampling factor of each level in the  pyramid (default is 0.6).");
 
     // Boolean Fast scheme
     AddParameter(ParameterType_Empty, "fast", "Use Fast Scheme");
diff --git a/Applications/Utils/otbOSMDownloader.cxx b/Applications/Utils/otbOSMDownloader.cxx
index eccda462c9388eba97e564fc1aa8ab43e023e629..e4952da0ebf7524455c8f63ef87e1cebed8ee0fe 100644
--- a/Applications/Utils/otbOSMDownloader.cxx
+++ b/Applications/Utils/otbOSMDownloader.cxx
@@ -72,7 +72,7 @@ private:
     MandatoryOff("key");
 
     AddParameter(ParameterType_String, "value",  "OSM tag value");
-    SetParameterDescription("key", "OSM tag value to extract (motorway, footway...)");
+    SetParameterDescription("value", "OSM tag value to extract (motorway, footway...)");
     MandatoryOff("value");
 
     // Elevation
diff --git a/Applications/Utils/otbReadImageInfo.cxx b/Applications/Utils/otbReadImageInfo.cxx
index f3ebe9effe5043174c48814df6dc0f95f89da0bb..2afced063ea10e526a0616a239d7ef97b92d9f4e 100644
--- a/Applications/Utils/otbReadImageInfo.cxx
+++ b/Applications/Utils/otbReadImageInfo.cxx
@@ -248,7 +248,8 @@ private:
     GroundSpacingImageType::Pointer groundSpacing = GroundSpacingImageType::New();
     groundSpacing->SetInputImage(inImage);
       
-    FloatType approxGroundSpacing = std::make_pair(itk::NumericTraits<ValueType>::Zero, itk::NumericTraits<ValueType>::min());
+    FloatType approxGroundSpacing;
+    approxGroundSpacing.Fill(itk::NumericTraits<ValueType>::Zero);
 
     FloatVectorImageType::IndexType  index;
     vnl_random rand(12345);
@@ -259,8 +260,8 @@ private:
     approxGroundSpacing = groundSpacing->EvaluateAtIndex(index);
 
     //Get image estimated ground spacing (in m)
-    SetParameterFloat("estimatedgroundspacingx", approxGroundSpacing.first);
-    SetParameterFloat("estimatedgroundspacingy", approxGroundSpacing.second);
+    SetParameterFloat("estimatedgroundspacingx", approxGroundSpacing[0]);
+    SetParameterFloat("estimatedgroundspacingy", approxGroundSpacing[1]);
 
     ossOutput << "\tEstimated ground spacing (in meters): [" << GetParameterFloat("estimatedgroundspacingx") << "," << GetParameterFloat("estimatedgroundspacingy") << "]" << std::endl;
 
diff --git a/Code/Projections/otbGroundSpacingImageFunction.h b/Code/Projections/otbGroundSpacingImageFunction.h
index 876adf90e468e9e351f21702d99e4d56116d3c96..6d40a457d86465ec1d084cc3f79bc175d337eaf3 100644
--- a/Code/Projections/otbGroundSpacingImageFunction.h
+++ b/Code/Projections/otbGroundSpacingImageFunction.h
@@ -12,6 +12,7 @@
   Copyright (c) CS Systemes d'information. All rights reserved.
   See CSCopyright.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.
@@ -40,7 +41,7 @@ namespace otb
  */
 template <class TInputImage, class TCoordRep = float>
 class ITK_EXPORT GroundSpacingImageFunction :
-    public itk::ImageFunction<TInputImage, std::pair<float, float>,
+    public itk::ImageFunction<TInputImage, itk::Vector<float, 2>,
       TCoordRep>
 {
 public:
@@ -49,11 +50,12 @@ public:
   
   /** Datatype used for the density */
   typedef float ValueType;
-  typedef std::pair<ValueType, ValueType> FloatType;
-  
+  //typedef std::pair<ValueType, ValueType> FloatType;
+  typedef itk::Vector<ValueType, 2> FloatType;
 
   typedef itk::ImageFunction<TInputImage, FloatType ,
       TCoordRep>                                          Superclass;
+  
   typedef itk::SmartPointer<Self>       Pointer;
   typedef itk::SmartPointer<const Self> ConstPointer;
 
@@ -107,7 +109,7 @@ private:
   void operator =(const Self&);  //purposely not implemented
 
   ValueType              m_R;
-  ValueType              m_deg2radCoef;
+  ValueType              m_Deg2radCoef;
 };
 
 } // end namespace otb
diff --git a/Code/Projections/otbGroundSpacingImageFunction.txx b/Code/Projections/otbGroundSpacingImageFunction.txx
index ca6054c04a12176258a80e15e6cb6a3934e9cc85..9746b47c472ad5f179a7dcc6795c83e7be2fe121 100644
--- a/Code/Projections/otbGroundSpacingImageFunction.txx
+++ b/Code/Projections/otbGroundSpacingImageFunction.txx
@@ -38,7 +38,7 @@ GroundSpacingImageFunction<TInputImage, TCoordRep>
 ::GroundSpacingImageFunction()
 {
   m_R = 6371000;
-  m_deg2radCoef = CONST_PI / 180;
+  m_Deg2radCoef = CONST_PI / 180;
 }
 
 /**
@@ -61,9 +61,12 @@ typename GroundSpacingImageFunction<TInputImage, TCoordRep>
 GroundSpacingImageFunction<TInputImage, TCoordRep>
 ::EvaluateAtIndex(const IndexType& index) const
 {
+  FloatType var;
+  
   if (!this->GetInputImage())
     {
-    return (std::make_pair(itk::NumericTraits<ValueType>::min(), itk::NumericTraits<ValueType>::min()));
+    var.Fill(itk::NumericTraits<ValueType>::min());
+    return var;
     }
 
   PointType point = this->GetPixelLocation(index);
@@ -84,28 +87,28 @@ GroundSpacingImageFunction<TInputImage, TCoordRep>
   PointType pointSrcX = this->GetPixelLocation(indexSrcX);
   PointType pointSrcY = this->GetPixelLocation(indexSrcY);
 
-  ValueType dLatX = (vcl_fabs(pointSrcX[1] - point[1])) * m_deg2radCoef;
-  ValueType dLonX = (vcl_fabs(pointSrcX[0] - point[0])) * m_deg2radCoef;
+  ValueType dLatX = (vcl_fabs(pointSrcX[1] - point[1])) * m_Deg2radCoef;
+  ValueType dLonX = (vcl_fabs(pointSrcX[0] - point[0])) * m_Deg2radCoef;
 
   const ValueType One = itk::NumericTraits<ValueType>::One;
   const ValueType Two = One + One;
 
-  ValueType aX = vcl_sin(dLatX / Two) * vcl_sin(dLatX / Two) + vcl_cos(point[1] * m_deg2radCoef) * vcl_cos(
-    pointSrcX[1] * m_deg2radCoef) * vcl_sin(dLonX / Two) * vcl_sin(dLonX / Two);
+  ValueType aX = vcl_sin(dLatX / Two) * vcl_sin(dLatX / Two) + vcl_cos(point[1] * m_Deg2radCoef) * vcl_cos(
+    pointSrcX[1] * m_Deg2radCoef) * vcl_sin(dLonX / Two) * vcl_sin(dLonX / Two);
   ValueType cX = Two * vcl_atan2(vcl_sqrt(aX), vcl_sqrt(One - aX));
   ValueType dX = m_R * cX;
 
-  ValueType dLatY = (vcl_fabs(pointSrcY[1] - point[1])) * m_deg2radCoef;
-  ValueType dLonY = (vcl_fabs(pointSrcY[0] - point[0])) * m_deg2radCoef;
+  ValueType dLatY = (vcl_fabs(pointSrcY[1] - point[1])) * m_Deg2radCoef;
+  ValueType dLonY = (vcl_fabs(pointSrcY[0] - point[0])) * m_Deg2radCoef;
 
-  ValueType aY = vcl_sin(dLatY / Two) * vcl_sin(dLatY / Two) + vcl_cos(point[1] * m_deg2radCoef) * vcl_cos(
-    pointSrcY[1] * m_deg2radCoef) * vcl_sin(dLonY / Two) * vcl_sin(dLonY / Two);
+  ValueType aY = vcl_sin(dLatY / Two) * vcl_sin(dLatY / Two) + vcl_cos(point[1] * m_Deg2radCoef) * vcl_cos(
+    pointSrcY[1] * m_Deg2radCoef) * vcl_sin(dLonY / Two) * vcl_sin(dLonY / Two);
   ValueType cY = Two * vcl_atan2(vcl_sqrt(aY), vcl_sqrt(One - aY));
   ValueType dY = m_R * cY;
 
-  FloatType var;
-  var.first = dX / (vcl_fabs(static_cast<ValueType>(indexSrcX[0] - index[0])));
-  var.second = dY / (vcl_fabs(static_cast<ValueType>(indexSrcY[1] - index[1])));
+  //FloatType var;
+  var[0] = dX / (vcl_fabs(static_cast<ValueType>(indexSrcX[0] - index[0])));
+  var[1] = dY / (vcl_fabs(static_cast<ValueType>(indexSrcY[1] - index[1])));
 
   return var;
 }
diff --git a/Code/Visualization/otbImageLayer.txx b/Code/Visualization/otbImageLayer.txx
index 321ebe2e26f5be3633ef014060eb1672ae0c3e01..869029001da7d9e6548fb82fc7ba2ee5bbb46b3c 100644
--- a/Code/Visualization/otbImageLayer.txx
+++ b/Code/Visualization/otbImageLayer.txx
@@ -69,7 +69,7 @@ ImageLayer<TImage, TOutputImage>
   m_CountryName = "";
 
   m_GroundSpacing = GroundSpacingImageType::New();
-  m_ApproxGroundSpacing = std::make_pair(itk::NumericTraits<ValueType>::min(), itk::NumericTraits<ValueType>::min());
+  m_ApproxGroundSpacing.Fill(itk::NumericTraits<ValueType>::min());
 }
 
 template <class TImage, class TOutputImage>
@@ -286,7 +286,7 @@ ImageLayer<TImage, TOutputImage>
       {
       PointType point = this->GetPixelLocation (index);
 
-      oss << setiosflags(std::ios::fixed) << std::setprecision(2) << "Ground spacing(in m): (" << m_ApproxGroundSpacing.first << ";" << m_ApproxGroundSpacing.second << ")" <<
+      oss << setiosflags(std::ios::fixed) << std::setprecision(2) << "Ground spacing(in m): (" << m_ApproxGroundSpacing[0] << ";" << m_ApproxGroundSpacing[1] << ")" <<
       std::endl;
 
       oss << setiosflags(std::ios::fixed) << std::setprecision(6) << "Lon: " << point[0] << " Lat: " << point[1] << std::endl;
diff --git a/Testing/Code/BasicFilters/otbFastICAImageFilter.cxx b/Testing/Code/BasicFilters/otbFastICAImageFilter.cxx
index c9322fe95ce292aaf11a34a4756e3153df09f9e5..8a74178b385327214a16636c7911fe20604c151a 100644
--- a/Testing/Code/BasicFilters/otbFastICAImageFilter.cxx
+++ b/Testing/Code/BasicFilters/otbFastICAImageFilter.cxx
@@ -77,8 +77,8 @@ int otbFastICAImageFilterTest ( int argc, char* argv[] )
     return EXIT_FAILURE;
   }
 
-  const char * inputImageName = parseResult->GetInputImage().c_str();
-  const char * outputImageName = parseResult->GetOutputImage().c_str();
+  std::string inputImageName = parseResult->GetInputImage();
+  std::string outputImageName = parseResult->GetOutputImage();
   const unsigned int nbComponents = parseResult->IsOptionPresent("--NumComponents") ?
     parseResult->GetParameterUInt("--NumComponents") : 0;
   const unsigned int nbIterations = parseResult->IsOptionPresent("--NumIterations") ?
diff --git a/Testing/Code/BasicFilters/otbHorizontalSobelVectorImageFilter.cxx b/Testing/Code/BasicFilters/otbHorizontalSobelVectorImageFilter.cxx
index 7123f404237146b96ef7ac02851e0827f3795ed5..58403838d6f46f34c2802f26b1a12f5d7f4c7f9d 100644
--- a/Testing/Code/BasicFilters/otbHorizontalSobelVectorImageFilter.cxx
+++ b/Testing/Code/BasicFilters/otbHorizontalSobelVectorImageFilter.cxx
@@ -66,8 +66,8 @@ int otbHorizontalSobelVectorImageFilterTest ( int argc, char* argv[] )
     return EXIT_FAILURE;
   }
 
-  const char * inputImageName = parseResult->GetInputImage().c_str();
-  const char * outputImageName = parseResult->GetOutputImage().c_str();
+  std::string inputImageName = parseResult->GetInputImage();
+  std::string outputImageName = parseResult->GetOutputImage();
 
   // Main type definition
   const unsigned int Dimension = 2;
diff --git a/Testing/Code/BasicFilters/otbLocalActivityVectorImageFilter.cxx b/Testing/Code/BasicFilters/otbLocalActivityVectorImageFilter.cxx
index 73fc063362f9e57e73b48c4cff307fcf80d96d79..876ee44e43e7f06b22ee11687eab23b435dacbf4 100644
--- a/Testing/Code/BasicFilters/otbLocalActivityVectorImageFilter.cxx
+++ b/Testing/Code/BasicFilters/otbLocalActivityVectorImageFilter.cxx
@@ -66,8 +66,8 @@ int otbLocalActivityVectorImageFilterTest ( int argc, char* argv[] )
     return EXIT_FAILURE;
   }
 
-  const char * inputImageName = parseResult->GetInputImage().c_str();
-  const char * outputImageName = parseResult->GetOutputImage().c_str();
+  std::string inputImageName = parseResult->GetInputImage();
+  std::string outputImageName = parseResult->GetOutputImage();
   unsigned int radiusX = 1;
   unsigned int radiusY = 1;
   if ( parseResult->IsOptionPresent("--Radius") )
diff --git a/Testing/Code/BasicFilters/otbLocalGradientVectorImageFilter.cxx b/Testing/Code/BasicFilters/otbLocalGradientVectorImageFilter.cxx
index 9a24a83d67ae199069e3207e811069ef0746e41d..87e5ee819350f35ad2307986eeae6166e8ef2530 100644
--- a/Testing/Code/BasicFilters/otbLocalGradientVectorImageFilter.cxx
+++ b/Testing/Code/BasicFilters/otbLocalGradientVectorImageFilter.cxx
@@ -66,8 +66,8 @@ int otbLocalGradientVectorImageFilterTest ( int argc, char* argv[] )
     return EXIT_FAILURE;
   }
 
-  const char * inputImageName = parseResult->GetInputImage().c_str();
-  const char * outputImageName = parseResult->GetOutputImage().c_str();
+  std::string inputImageName = parseResult->GetInputImage();
+  std::string outputImageName = parseResult->GetOutputImage();
 
   // Main type definition
   const unsigned int Dimension = 2;
diff --git a/Testing/Code/BasicFilters/otbMNFImageFilter.cxx b/Testing/Code/BasicFilters/otbMNFImageFilter.cxx
index 67855bfb4c7afa1ff3b6a002650333bebbc220eb..5e80436409d993ff7986d848d08e03f6f98a6997 100644
--- a/Testing/Code/BasicFilters/otbMNFImageFilter.cxx
+++ b/Testing/Code/BasicFilters/otbMNFImageFilter.cxx
@@ -77,8 +77,8 @@ int otbMNFImageFilterTest ( int argc, char* argv[] )
     return EXIT_FAILURE;
   }
 
-  const char * inputImageName = parseResult->GetInputImage().c_str();
-  const char * outputImageName = parseResult->GetOutputImage().c_str();
+  std::string inputImageName = parseResult->GetInputImage();
+  std::string outputImageName = parseResult->GetOutputImage();
   const unsigned int nbComponents = parseResult->IsOptionPresent("--NumComponents") ?
     parseResult->GetParameterUInt("--NumComponents") : 0;
   unsigned int radiusX = 1;
diff --git a/Testing/Code/BasicFilters/otbNAPCAImageFilter.cxx b/Testing/Code/BasicFilters/otbNAPCAImageFilter.cxx
index 521fe604ba93e183e85b031b687eb0935f5f8b14..93e3ba62c86ab34a5387b40dc6313be8bbe2d2f4 100644
--- a/Testing/Code/BasicFilters/otbNAPCAImageFilter.cxx
+++ b/Testing/Code/BasicFilters/otbNAPCAImageFilter.cxx
@@ -77,8 +77,8 @@ int otbNAPCAImageFilterTest ( int argc, char* argv[] )
     return EXIT_FAILURE;
   }
 
-  const char * inputImageName = parseResult->GetInputImage().c_str();
-  const char * outputImageName = parseResult->GetOutputImage().c_str();
+  std::string inputImageName = parseResult->GetInputImage();
+  std::string outputImageName = parseResult->GetOutputImage();
   const unsigned int nbComponents = parseResult->IsOptionPresent("--NumComponents") ?
     parseResult->GetParameterUInt("--NumComponents") : 0;
   unsigned int radiusX = 1;
diff --git a/Testing/Code/BasicFilters/otbPCAImageFilter.cxx b/Testing/Code/BasicFilters/otbPCAImageFilter.cxx
index bf5ecc1422e473a2ce5faf94be82bc2aaf9fa32c..4ce4b645906c5b06c449571989f69bcd24724820 100644
--- a/Testing/Code/BasicFilters/otbPCAImageFilter.cxx
+++ b/Testing/Code/BasicFilters/otbPCAImageFilter.cxx
@@ -70,8 +70,8 @@ int otbPCAImageFilterTest ( int argc, char* argv[] )
     return EXIT_FAILURE;
   }
 
-  const char * inputImageName = parseResult->GetInputImage().c_str();
-  const char * outputImageName = parseResult->GetOutputImage().c_str();
+  std::string inputImageName = parseResult->GetInputImage();
+  std::string outputImageName = parseResult->GetOutputImage();
   const unsigned int nbComponents = parseResult->IsOptionPresent("--NumComponents") ?
     parseResult->GetParameterUInt("--NumComponents") : 0;
   const bool normalization = parseResult->IsOptionPresent("--NormalizeVariance");
diff --git a/Testing/Code/BasicFilters/otbSobelVectorImageFilter.cxx b/Testing/Code/BasicFilters/otbSobelVectorImageFilter.cxx
index 24f1cd4f03f2080f2d26e392113fe4f1d27cd296..14679e6357d0d400ce6c190e5d777a021f6717b8 100644
--- a/Testing/Code/BasicFilters/otbSobelVectorImageFilter.cxx
+++ b/Testing/Code/BasicFilters/otbSobelVectorImageFilter.cxx
@@ -64,8 +64,8 @@ int otbSobelVectorImageFilterTest ( int argc, char* argv[] )
     return EXIT_FAILURE;
   }
 
-  const char * inputImageName = parseResult->GetInputImage().c_str();
-  const char * outputImageName = parseResult->GetOutputImage().c_str();
+  std::string inputImageName = parseResult->GetInputImage();
+  std::string outputImageName = parseResult->GetOutputImage();
 
   // Main type definition
   const unsigned int Dimension = 2;
diff --git a/Testing/Code/BasicFilters/otbVerticalSobelVectorImageFilter.cxx b/Testing/Code/BasicFilters/otbVerticalSobelVectorImageFilter.cxx
index 3cf2317a4c98ef87ff0b41ba6fe088c7ed0d3e80..102eeaa996d9361f46054d5c75a3d169f2579ce7 100644
--- a/Testing/Code/BasicFilters/otbVerticalSobelVectorImageFilter.cxx
+++ b/Testing/Code/BasicFilters/otbVerticalSobelVectorImageFilter.cxx
@@ -65,8 +65,8 @@ int otbVerticalSobelVectorImageFilterTest ( int argc, char* argv[] )
     return EXIT_FAILURE;
   }
 
-  const char * inputImageName = parseResult->GetInputImage().c_str();
-  const char * outputImageName = parseResult->GetOutputImage().c_str();
+  std::string inputImageName = parseResult->GetInputImage();
+  std::string outputImageName = parseResult->GetOutputImage();
 
   // Main type definition
   const unsigned int Dimension = 2;