diff --git a/CMake/FindMercurial.cmake b/CMake/FindMercurial.cmake
index 3c06e485a2458168ac0489273ece4643dc5ecaaa..73f2d39066a2762716656bf58d3d89853154959e 100644
--- a/CMake/FindMercurial.cmake
+++ b/CMake/FindMercurial.cmake
@@ -11,6 +11,7 @@
 
 SET(Mercurial_FOUND FALSE)
 SET(Mercurial_HG_FOUND FALSE)
+SET(Mercurial_HG_PROJECT FALSE)
 
 FIND_PROGRAM(Mercurial_HG_EXECUTABLE hg
   DOC "mercurial command line client")
@@ -43,14 +44,15 @@ IF(Mercurial_HG_EXECUTABLE)
       OUTPUT_STRIP_TRAILING_WHITESPACE)
 
     IF(NOT ${Mercurial_hg_identify_result} EQUAL 0)
-      MESSAGE(SEND_ERROR "Command \"${Mercurial_HG_EXECUTABLE} identify ${dir}\" failed with output:\n${Mercurial_hg_identify_error}")
+      #MESSAGE(WARNING "Command \"${Mercurial_HG_EXECUTABLE} identify ${dir}\" failed with output:\n${Mercurial_hg_identify_error}")
+      SET(Mercurial_HG_PROJECT FALSE)
     ELSE(NOT ${Mercurial_hg_identify_result} EQUAL 0)
 
       STRING(REGEX REPLACE "^(.*\n)?Mercurial Distributed SCM [(]version ([.0-9]+).*"
         "\\2" Mercurial_VERSION_HG "${Mercurial_VERSION_HG}")
       STRING(REGEX REPLACE "^(.*\n)?([0-9a-f]+).*"
         "\\2" ${prefix}_WC_REVISION "${${prefix}_WC_IDENTIFY}")
-
+    SET(Mercurial_HG_PROJECT TRUE)
     ENDIF(NOT ${Mercurial_hg_identify_result} EQUAL 0)
 
     # restore the previous LC_ALL
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 969b58e35911824a3d41fb8220440e29360313db..64faa657f7e49ab68564de7fec0e83f36075fd7b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -73,19 +73,21 @@ SET(OTB_VERSION_PATCH "0")
 FIND_PACKAGE(Mercurial)
 IF(Mercurial_FOUND)
   Mercurial_WC_IDENTIFY(${PROJECT_SOURCE_DIR} OTB)
-  MESSAGE(STATUS "Mercurial version is ${Mercurial_VERSION_HG}")
-  MESSAGE(STATUS "Repository revision is ${OTB_WC_REVISION}")
-  SET(OTB_WC_REVISION ${OTB_WC_REVISION} CACHE STRING "Repository version" FORCE)
-  MARK_AS_ADVANCED(OTB_WC_REVISION)
-  IF(OTB_WC_STATUS)
-    MESSAGE(STATUS "Local file modifications:")
-    MESSAGE(STATUS ${OTB_WC_STATUS})
-  ELSE(OTB_WC_STATUS)
-    MESSAGE(STATUS "No files modified locally")
-  ENDIF(OTB_WC_STATUS)
-  STRING(REGEX REPLACE "\n" ";" OTB_WC_STATUS "${OTB_WC_STATUS}")
-  SET(OTB_WC_STATUS ${OTB_WC_STATUS} CACHE STRING "Repository status" FORCE)
-  MARK_AS_ADVANCED(OTB_WC_STATUS)
+  IF(Mercurial_HG_PROJECT)
+    MESSAGE(STATUS "Mercurial version is ${Mercurial_VERSION_HG}")
+    MESSAGE(STATUS "Repository revision is ${OTB_WC_REVISION}")
+    SET(OTB_WC_REVISION ${OTB_WC_REVISION} CACHE STRING "Repository version" FORCE)
+    MARK_AS_ADVANCED(OTB_WC_REVISION)
+    IF(OTB_WC_STATUS)
+      MESSAGE(STATUS "Local file modifications:")
+      MESSAGE(STATUS ${OTB_WC_STATUS})
+    ELSE(OTB_WC_STATUS)
+      MESSAGE(STATUS "No files modified locally")
+    ENDIF(OTB_WC_STATUS)
+    STRING(REGEX REPLACE "\n" ";" OTB_WC_STATUS "${OTB_WC_STATUS}")
+    SET(OTB_WC_STATUS ${OTB_WC_STATUS} CACHE STRING "Repository status" FORCE)
+    MARK_AS_ADVANCED(OTB_WC_STATUS)
+  ENDIF(Mercurial_HG_PROJECT)
 ENDIF(Mercurial_FOUND)
 
 # Version string should not include patch level.  The major.minor is