diff --git a/Code/Common/otbMacro.h b/Code/Common/otbMacro.h
index b2988c9847d0b0ab267a454aa4be4c2ce6095740..51cb2a0f31b781e935418b42d6e5b5b2db37ce29 100755
--- a/Code/Common/otbMacro.h
+++ b/Code/Common/otbMacro.h
@@ -86,21 +86,18 @@
 }
 #endif
 
-/** This macro is used to control condition and print message. It use ONLY by the OTB developpers 
-  * This macro do an exit() program !! 
+/** This macro is used to control condition. It use ONLY by the OTB developpers 
+  *  
   */
 #define otbControlConditionTestMacro(condition, message) \
 {       if( (condition) ) \
         { \
-                std::cout << "Test failed at line " << __LINE__ << " in file " << __FILE__  << "\n" \
-                          << "Error message: " << message << "\n\n"; \
-                exit(EXIT_FAILURE);\
+                itk::ExceptionMacro(<<message<<"\n -> condition '"<<condition<<"' not OK.\n\n"; \
         } \
 }
 
 
 
-
 namespace otb
 {