diff --git a/CMakeLists.txt b/CMakeLists.txt
index 872dcdda7a11735725899d3bc270a6ee32969001..7013f81e8ab1af70a4b5cc341bf334b431c417d5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -325,6 +325,35 @@ IF(OTB_USE_CURL)
 
 ENDIF(OTB_USE_CURL)
 
+#-------------------------------
+# Mapnik Library
+#-------------------------------
+OPTION(OTB_USE_MAPNIK "Use mapnik library." OFF)
+MARK_AS_ADVANCED(OTB_USE_MAPNIK)
+IF(OTB_USE_MAPNIK)
+
+        FIND_PATH(MAPNIK_INCLUDE_DIR mapnik/map.hpp PATHS)
+        MARK_AS_ADVANCED(MAPNIK_INCLUDE_DIR)
+        IF (NOT MAPNIK_INCLUDE_DIR)
+                MESSAGE(FATAL_ERROR
+                        "Cannot find MAPNIK include directory. Please set MAPNIK_INCLUDE_DIR or SET OTB_USE_MAPNIK OFF.")
+        ENDIF (NOT MAPNIK_INCLUDE_DIR)
+
+        FIND_LIBRARY(MAPNIK_LIBRARY mapnik )
+        MARK_AS_ADVANCED(MAPNIK_LIBRARY)
+        IF (NOT MAPNIK_LIBRARY)
+                MESSAGE(FATAL_ERROR
+                        "Cannot find MAPNIK library. Please set MAPNIK_LIBRARY or SET OTB_USE_MAPNIK OFF.")
+        ENDIF (NOT MAPNIK_LIBRARY)
+
+# Add compiler option
+        ADD_DEFINITIONS(-DOTB_USE_MAPNIK)
+
+        INCLUDE_DIRECTORIES(${MAPNIK_INCLUDE_DIR})
+
+ENDIF(OTB_USE_MAPNIK)
+
+
 #-------------------------------
 # Boost Library
 #-------------------------------
diff --git a/otbIncludeDirectories.cmake b/otbIncludeDirectories.cmake
index 37b0b99e1441d2f6b171ddad4a55c4c19ca9d57c..32abab858ffcf1dc5f0ae417bcc7a57cc59ef558 100644
--- a/otbIncludeDirectories.cmake
+++ b/otbIncludeDirectories.cmake
@@ -93,6 +93,13 @@ IF(OTB_USE_CURL)
   	${CURL_INCLUDE_DIR} )
 ENDIF(OTB_USE_CURL)
 
+#-----------------------------------------------------------------------------
+# Include directories from the MAPNIK build tree.
+IF(OTB_USE_MAPNIK)
+  SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE}
+  	${MAPNIK_INCLUDE_DIR} )
+ENDIF(OTB_USE_MAPNIK)
+
 #-----------------------------------------------------------------------------
 # Include directories from the ITK build tree.
 IF(OTB_USE_EXTERNAL_ITK)
@@ -287,6 +294,12 @@ IF(OTB_USE_CURL)
   	${CURL_INCLUDE_DIR} )
 ENDIF(OTB_USE_CURL)
 
+#For MAPNIK header file
+IF(OTB_USE_MAPNIK)
+  SET(OTB_INCLUDE_ABSOLUE_DIRS ${OTB_INCLUDE_ABSOLUE_DIRS}
+  	${MAPNIK_INCLUDE_DIR} )
+ENDIF(OTB_USE_MAPNIK)
+
 # For OpentTreads  header file
 IF(OTB_USE_EXTERNAL_OPENTHREADS)
   SET(OTB_INCLUDE_ABSOLUE_DIRS ${OTB_INCLUDE_ABSOLUE_DIRS}