diff --git a/Code/Projections/otbElevDatabaseHeightAboveMSLFunction.h b/Code/Projections/otbElevDatabaseHeightAboveMSLFunction.h
index ccd5053eb59bfd5991c683c020755ed3a8795a4b..20631253f155778a2f10182904212b1fe36ae747 100644
--- a/Code/Projections/otbElevDatabaseHeightAboveMSLFunction.h
+++ b/Code/Projections/otbElevDatabaseHeightAboveMSLFunction.h
@@ -92,6 +92,7 @@ public:
 
   /** Try to open the DEM directory. */
   virtual void OpenDEMDirectory(const char* DEMDirectory);
+  virtual void OpenDEMDirectory(const std::string&  DEMDirectory);
 
   /** Set the default height above ellipsoid in case no information is available*/
   virtual void SetDefaultHeightAboveEllipsoid(double h);
diff --git a/Code/Projections/otbElevDatabaseHeightAboveMSLFunction.txx b/Code/Projections/otbElevDatabaseHeightAboveMSLFunction.txx
index e4340233b761dc93252a7edf525433321710b7b2..c85044a944c31b963eb655ec6ad3fea47e44c297 100644
--- a/Code/Projections/otbElevDatabaseHeightAboveMSLFunction.txx
+++ b/Code/Projections/otbElevDatabaseHeightAboveMSLFunction.txx
@@ -88,6 +88,14 @@ ElevDatabaseHeightAboveMSLFunction<TOutputPixel, TCoordRep, NPointDimension>
 
 }
 
+template <class TOutputPixel, class TCoordRep, unsigned int NPointDimension>
+void
+ElevDatabaseHeightAboveMSLFunction<TOutputPixel, TCoordRep, NPointDimension>
+::OpenDEMDirectory(const std::string& DEMDirectory)
+{
+  this->OpenDEMDirectory(DEMDirectory.c_str());
+}
+
 template <class TOutputPixel, class TCoordRep, unsigned int NPointDimension>
 void
 ElevDatabaseHeightAboveMSLFunction<TOutputPixel, TCoordRep, NPointDimension>
@@ -102,6 +110,7 @@ ElevDatabaseHeightAboveMSLFunction<TOutputPixel, TCoordRep, NPointDimension>
     }
 }
 
+
 template <class TOutputPixel, class TCoordRep, unsigned int NPointDimension>
 void
 ElevDatabaseHeightAboveMSLFunction<TOutputPixel, TCoordRep, NPointDimension>