diff --git a/CMake/OTBModuleRemote.cmake b/CMake/OTBModuleRemote.cmake
index 74f6b170ee65cd2b86dacedf646b04d74caf27a0..c0c7aa4af230e4183fe4aed562cc19231d157c63 100644
--- a/CMake/OTBModuleRemote.cmake
+++ b/CMake/OTBModuleRemote.cmake
@@ -22,12 +22,17 @@
 
 # Helper to perform the initial git clone and checkout.
 function(_git_clone git_executable git_repository git_tag module_dir)
-  execute_process(
-    COMMAND "${git_executable}" clone "${git_repository}" "${module_dir}"
-    RESULT_VARIABLE error_code
-    OUTPUT_QUIET
-    ERROR_QUIET
-    )
+  set(retryCount 0)
+  set(error_code 1)
+  while(error_code AND (retryCount LESS 3))
+    execute_process(
+      COMMAND "${git_executable}" clone "${git_repository}" "${module_dir}"
+      RESULT_VARIABLE error_code
+      OUTPUT_QUIET
+      ERROR_QUIET
+      )
+    math(EXPR retryCount "${retryCount}+1")
+  endwhile()
   if(error_code)
     message(FATAL_ERROR "Failed to clone repository: '${git_repository}'")
   endif()