diff --git a/Code/Common/otbVectorDataToImageFilter.h b/Code/Common/otbVectorDataToImageFilter.h
index 6c601d82de22778f02b1210e5ae3be2edf19a28f..f4e0a429ea1cfb20ec6b5cb0f6eb661e3e67be9d 100644
--- a/Code/Common/otbVectorDataToImageFilter.h
+++ b/Code/Common/otbVectorDataToImageFilter.h
@@ -144,6 +144,10 @@ public:
   itkSetMacro(RenderingStyleType, RenderingStyleType);
   itkGetMacro(RenderingStyleType, RenderingStyleType);
 
+  /** Add accessors to the font filename */
+  itkSetStringMacro(FontFileName);
+  itkGetStringMacro(FontFileName);
+
 protected:
   /** Constructor */
   VectorDataToImageFilter();
@@ -172,6 +176,9 @@ private:
 
   mapnik::Map m_Map;
 
+  // font file name
+  std::string   m_FontFileName;
+
   //This factor is used to flip the data on the Y axis when using a
   //sensor model geometry (where the Y coordinate increases top-down)
   int m_SensorModelFlip;
diff --git a/Code/Common/otbVectorDataToImageFilter.txx b/Code/Common/otbVectorDataToImageFilter.txx
index b2bdc59406fc3dff19d7769f683bbf6de7d27980..8eadeb584389cbdcb6992a18fb61ec0238a0b482 100644
--- a/Code/Common/otbVectorDataToImageFilter.txx
+++ b/Code/Common/otbVectorDataToImageFilter.txx
@@ -209,10 +209,9 @@ VectorDataToImageFilter<TVectorData, TImage>
 
   Superclass::BeforeThreadedGenerateData();
 
-#ifndef WIN32
-  mapnik::freetype_engine::register_font("/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf");
-#endif
-
+  if(!m_FontFileName.empty())
+    mapnik::freetype_engine::register_font(m_FontFileName);
+  
   //Load the OSM styles using helper class
   otb::VectorDataStyle::Pointer styleLoader = otb::VectorDataStyle::New();
   styleLoader->SetScaleFactor(m_ScaleFactor);
diff --git a/Testing/Code/Common/CMakeLists.txt b/Testing/Code/Common/CMakeLists.txt
index 3154ff08827babd976f2e3c985c231dc9c57c0fb..ad08b578479bebec68f6ac71d36fc35664eb2d6b 100644
--- a/Testing/Code/Common/CMakeLists.txt
+++ b/Testing/Code/Common/CMakeLists.txt
@@ -788,6 +788,7 @@ ADD_TEST(coTvVectorDataToImageFilter ${COMMON_TESTS9}
    otbVectorDataToImageFilter
         ${LARGEINPUT}/VECTOR/MidiPyrenees/roads.shp
 	${TEMP}/coTvVectorDataToImageFilter.png
+        ${BASELINE_FILES}/DejaVuSans.ttf # font
 )
 ENDIF(OTB_DATA_USE_LARGEINPUT)
 
@@ -801,6 +802,7 @@ ADD_TEST(coTvVectorDataToImageFilterSensorModel ${COMMON_TESTS9}
         ${LARGEINPUT}/VECTOR/MidiPyrenees/roads.shp
         ${LARGEINPUT}/QUICKBIRD/TOULOUSE/000000128955_01_P001_PAN/02APR01105228-P1BS-000000128955_01_P001.TIF
 	${TEMP}/coTvVectorDataToImageFilterSensorModel.png
+        ${BASELINE_FILES}/DejaVuSans.ttf # font
 )
 ENDIF(OTB_DATA_USE_LARGEINPUT)
 
@@ -815,6 +817,7 @@ ADD_TEST(coTvVectorDataToImageFilterWorld ${COMMON_TESTS9}
         500 500 #Size
         -20 60 #lon/lat
         0.1 -0.1 #spacing lon/lat
+        ${BASELINE_FILES}/DejaVuSans.ttf # font
 )
 
 
diff --git a/Testing/Code/Common/otbVectorDataToImageFilter.cxx b/Testing/Code/Common/otbVectorDataToImageFilter.cxx
index e554918abd97b8413dc0fa90a4f76d50219d34b0..90b5a71b36e1d245bdfaca59ee1a660554941f76 100644
--- a/Testing/Code/Common/otbVectorDataToImageFilter.cxx
+++ b/Testing/Code/Common/otbVectorDataToImageFilter.cxx
@@ -31,9 +31,9 @@
 int otbVectorDataToImageFilter(int argc, char * argv[])
 {
 
-  if (argc < 3)
+  if (argc < 4)
     {
-    std::cout << argv[0] << " <input vector filename> <input image filename>"  << std::endl;
+    std::cout << argv[0] << " <input vector filename> <input image filename> <font filename>"  << std::endl;
 
     return EXIT_FAILURE;
     }
@@ -92,6 +92,7 @@ int otbVectorDataToImageFilter(int argc, char * argv[])
   vectorDataRendering->SetSize(size);
   vectorDataRendering->SetOrigin(origin);
   vectorDataRendering->SetSpacing(spacing);
+  vectorDataRendering->SetFontFileName(argv[3]);
   vectorDataRendering->AddStyle("minor-roads-casing");
 #ifndef WIN32
   vectorDataRendering->AddStyle("roads-text");
diff --git a/Testing/Code/Common/otbVectorDataToImageFilterSensorModel.cxx b/Testing/Code/Common/otbVectorDataToImageFilterSensorModel.cxx
index 39ebb2a5c046817201469cbcc8dbb344f69d3efc..d38b669c5a0bd072501536f128cb3fbb49b2c5af 100644
--- a/Testing/Code/Common/otbVectorDataToImageFilterSensorModel.cxx
+++ b/Testing/Code/Common/otbVectorDataToImageFilterSensorModel.cxx
@@ -32,10 +32,12 @@
 int otbVectorDataToImageFilterSensorModel(int argc, char * argv[])
 {
 
-  if (argc < 4)
+  if (argc < 5)
     {
     std::cout << argv[0] << " <input vector filename> <input image filename>"
-              << " <output vector filename> "  << std::endl;
+              << " <output vector filename> "
+              << "<font filename>"
+              << std::endl;
 
     return EXIT_FAILURE;
     }
@@ -93,6 +95,7 @@ int otbVectorDataToImageFilterSensorModel(int argc, char * argv[])
   vectorDataRendering->SetSize(size);
   vectorDataRendering->SetOrigin(origin);
   vectorDataRendering->SetSpacing(spacing);
+  vectorDataRendering->SetFontFileName(argv[4]);
   vectorDataRendering->AddStyle("minor-roads-casing");
 #ifndef WIN32
   vectorDataRendering->AddStyle("roads-text");
diff --git a/Testing/Code/Common/otbVectorDataToImageFilterWorld.cxx b/Testing/Code/Common/otbVectorDataToImageFilterWorld.cxx
index 7b1dfaa40abd8609f35b7a614b4f159dca78329b..1cce23ee9b7af5c0c7fd410dafad9e67a303e343 100644
--- a/Testing/Code/Common/otbVectorDataToImageFilterWorld.cxx
+++ b/Testing/Code/Common/otbVectorDataToImageFilterWorld.cxx
@@ -31,13 +31,15 @@
 int otbVectorDataToImageFilterWorld(int argc, char * argv[])
 {
 
-  if (argc < 10)
+  if (argc < 11)
     {
     std::cout << argv[0] << " <input vector filename> <input image filename>"
               << " <output vector filename> "
               << " <sizeX> <sizeY> "
               << " <origin lon> <origin lat> "
-              << " <spacing lon> <spacing lat> "  << std::endl;
+              << " <spacing lon> <spacing lat> "  
+              << " <font filename>"
+              << std::endl;
     return EXIT_FAILURE;
     }
 
@@ -82,6 +84,7 @@ int otbVectorDataToImageFilterWorld(int argc, char * argv[])
   vectorDataRendering->SetSize(size);
   vectorDataRendering->SetOrigin(origin);
   vectorDataRendering->SetSpacing(spacing);
+  vectorDataRendering->SetFontFileName(argv[10]);
   vectorDataRendering->AddStyle("world");
 #ifndef WIN32
   vectorDataRendering->AddStyle("city");