diff --git a/Modules/Applications/AppSegmentation/app/otbLSMSSegmentation.cxx b/Modules/Applications/AppSegmentation/app/otbLSMSSegmentation.cxx
index d6942c00673df53872de0bf6d4eb63aaccd6cf89..f940b88641ded4f305db70e0006504b479574b41 100644
--- a/Modules/Applications/AppSegmentation/app/otbLSMSSegmentation.cxx
+++ b/Modules/Applications/AppSegmentation/app/otbLSMSSegmentation.cxx
@@ -35,7 +35,7 @@
 #include "otbImportGeoInformationImageFilter.h"
 
 #include <time.h>
-#include <vcl_algorithm.h>
+#include <algorithm>
 
 #include "otbWrapperApplication.h"
 #include "otbWrapperApplicationFactory.h"
diff --git a/Modules/Applications/AppSegmentation/app/otbLSMSSmallRegionsMerging.cxx b/Modules/Applications/AppSegmentation/app/otbLSMSSmallRegionsMerging.cxx
index b6a95b0dbbeaa7ee43f7169f9710fe7d09f4ea43..a0ee5f7b50d05f543079478b3784d63ddb8bea94 100644
--- a/Modules/Applications/AppSegmentation/app/otbLSMSSmallRegionsMerging.cxx
+++ b/Modules/Applications/AppSegmentation/app/otbLSMSSmallRegionsMerging.cxx
@@ -30,7 +30,7 @@
 #include "otbTileImageFilter.h"
 
 #include <time.h>
-#include <vcl_algorithm.h>
+#include <algorithm>
 #include <climits>
 
 #include "otbWrapperApplication.h"
diff --git a/Modules/Applications/AppSegmentation/app/otbLSMSVectorization.cxx b/Modules/Applications/AppSegmentation/app/otbLSMSVectorization.cxx
index 98f41942853504b569220ac1f7352641677d7a72..ec8548865ea4759a63189df97edd840376ac4b7d 100644
--- a/Modules/Applications/AppSegmentation/app/otbLSMSVectorization.cxx
+++ b/Modules/Applications/AppSegmentation/app/otbLSMSVectorization.cxx
@@ -29,7 +29,7 @@
 #include "otbOGRFeatureWrapper.h"
 
 #include <time.h>
-#include <vcl_algorithm.h>
+#include <algorithm>
 
 namespace otb
 {
diff --git a/Modules/Core/Common/include/otbMath.h b/Modules/Core/Common/include/otbMath.h
index 5e65c0530f6012ed4c726b2feb68463a168a4546..966b5a12ddfb354a6844eabc0a7762e3935fe021 100644
--- a/Modules/Core/Common/include/otbMath.h
+++ b/Modules/Core/Common/include/otbMath.h
@@ -28,7 +28,7 @@
  * All mathematics constans, functions (used in the OTB code) are the vcl version (vcl..., CONST_PI, ).
  */
 
-#include "vcl_cmath.h"
+#include <cmath>
 
 namespace otb {
 
@@ -37,7 +37,7 @@ namespace otb {
 #define _MATH_DEFINES_DEFINED
 #endif
 
-/** Define constants if not define in the "vcl_cmath.h" */
+/** Define constants if not define in the "cmath" */
 
 /* Some useful constants.  */
 const double CONST_E =        2.7182818284590452354;   /* e */
diff --git a/Modules/Filtering/Polarimetry/include/otbPolarimetricSynthesisFunctor.h b/Modules/Filtering/Polarimetry/include/otbPolarimetricSynthesisFunctor.h
index 1d00b491f2335afef131ed93c38a102bb5911858..3e607f4ae2de45b3ea7770912900cf517ce5af25 100644
--- a/Modules/Filtering/Polarimetry/include/otbPolarimetricSynthesisFunctor.h
+++ b/Modules/Filtering/Polarimetry/include/otbPolarimetricSynthesisFunctor.h
@@ -22,7 +22,7 @@
 #define otbPolarimetricSynthesisFunctor_h
 
 #include "otbMath.h"
-#include "std::complex.h"
+#include <complex>
 #include "itkFixedArray.h"
 
 namespace otb
diff --git a/Modules/Filtering/Polarimetry/include/otbReciprocalLinearCovarianceToReciprocalCircularCovarianceImageFilter.h b/Modules/Filtering/Polarimetry/include/otbReciprocalLinearCovarianceToReciprocalCircularCovarianceImageFilter.h
index 2ccc69ccf0af9d7051ab12a1fc657d6cc7726bf2..6cf8ea7e2ae5fe4071ca435c273fc7d0a0bb0c28 100644
--- a/Modules/Filtering/Polarimetry/include/otbReciprocalLinearCovarianceToReciprocalCircularCovarianceImageFilter.h
+++ b/Modules/Filtering/Polarimetry/include/otbReciprocalLinearCovarianceToReciprocalCircularCovarianceImageFilter.h
@@ -23,7 +23,7 @@
 #define otbReciprocalLinearCovarianceToReciprocalCircularCovarianceImageFilter_h
 
 #include "itkUnaryFunctorImageFilter.h"
-#include "std::complex.h"
+#include <complex>
 
 namespace otb
  {
diff --git a/Modules/Filtering/Polarimetry/include/otbSinclairToCircularCovarianceMatrixFunctor.h b/Modules/Filtering/Polarimetry/include/otbSinclairToCircularCovarianceMatrixFunctor.h
index 4a0dddeb27d3f9eb45ae76d89d95a292d8ebeb32..cc9c9fe283d10b4b3bf24a1f4e93157cb0209f36 100644
--- a/Modules/Filtering/Polarimetry/include/otbSinclairToCircularCovarianceMatrixFunctor.h
+++ b/Modules/Filtering/Polarimetry/include/otbSinclairToCircularCovarianceMatrixFunctor.h
@@ -21,7 +21,7 @@
 #ifndef otbSinclairToCircularCovarianceMatrixFunctor_h
 #define otbSinclairToCircularCovarianceMatrixFunctor_h
 
-#include "std::complex.h"
+#include <complex>
 #include "otbSinclairToCovarianceMatrixFunctor.h"
 
 namespace otb
diff --git a/Modules/Filtering/Polarimetry/include/otbSinclairToCoherencyMatrixFunctor.h b/Modules/Filtering/Polarimetry/include/otbSinclairToCoherencyMatrixFunctor.h
index ff65105ab336a7c800ffa496b975a9b0321952e2..e21d9635e8a8181d45c4ed8b781a8712f6f1edb1 100644
--- a/Modules/Filtering/Polarimetry/include/otbSinclairToCoherencyMatrixFunctor.h
+++ b/Modules/Filtering/Polarimetry/include/otbSinclairToCoherencyMatrixFunctor.h
@@ -21,7 +21,7 @@
 #ifndef otbSinclairToCoherencyMatrixFunctor_h
 #define otbSinclairToCoherencyMatrixFunctor_h
 
-#include "std::complex.h"
+#include <complex>
 
 namespace otb
 {
diff --git a/Modules/Filtering/Polarimetry/include/otbSinclairToCovarianceMatrixFunctor.h b/Modules/Filtering/Polarimetry/include/otbSinclairToCovarianceMatrixFunctor.h
index 03416a4f6102427616f8e86217206989d248dde6..9decec618f7b9991f9c2d7800e3bc9a90c5223bf 100644
--- a/Modules/Filtering/Polarimetry/include/otbSinclairToCovarianceMatrixFunctor.h
+++ b/Modules/Filtering/Polarimetry/include/otbSinclairToCovarianceMatrixFunctor.h
@@ -21,7 +21,7 @@
 #ifndef otbSinclairToCovarianceMatrixFunctor_h
 #define otbSinclairToCovarianceMatrixFunctor_h
 
-#include "std::complex.h"
+#include <complex>
 
 namespace otb
 {
diff --git a/Modules/Filtering/Polarimetry/include/otbSinclairToMuellerMatrixFunctor.h b/Modules/Filtering/Polarimetry/include/otbSinclairToMuellerMatrixFunctor.h
index 800876df5672dff80c3fd82f3fc18e2acce6726b..893fdb2158fd0d240359b5fe72aa9000eb5383c6 100644
--- a/Modules/Filtering/Polarimetry/include/otbSinclairToMuellerMatrixFunctor.h
+++ b/Modules/Filtering/Polarimetry/include/otbSinclairToMuellerMatrixFunctor.h
@@ -21,7 +21,7 @@
 #ifndef otbSinclairToMuellerMatrixFunctor_h
 #define otbSinclairToMuellerMatrixFunctor_h
 
-#include "std::complex.h"
+#include <complex>
 
 namespace otb
 {
diff --git a/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCircularCovarianceMatrixFunctor.h b/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCircularCovarianceMatrixFunctor.h
index 4c179f8f709b44c75815442de54da4e1cdd7dfdf..02fe39e304416acd8ec6b27e829c2bdd4367f424 100644
--- a/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCircularCovarianceMatrixFunctor.h
+++ b/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCircularCovarianceMatrixFunctor.h
@@ -21,7 +21,7 @@
 #ifndef otbSinclairToReciprocalCircularCovarianceMatrixFunctor_h
 #define otbSinclairToReciprocalCircularCovarianceMatrixFunctor_h
 
-#include "std::complex.h"
+#include <complex>
 #include "otbSinclairToReciprocalCovarianceMatrixFunctor.h"
 
 namespace otb
diff --git a/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCoherencyMatrixFunctor.h b/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCoherencyMatrixFunctor.h
index a353fb787fad3cc8389727d80e180c28f42ea939..f9a3ec46f7f7d77590fcfe6db2dd3e2bad0f565e 100644
--- a/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCoherencyMatrixFunctor.h
+++ b/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCoherencyMatrixFunctor.h
@@ -22,7 +22,7 @@
 #define otbSinclairToReciprocalCoherencyMatrixFunctor_h
 
 #include "itkMacro.h"
-#include "std::complex.h"
+#include <complex>
 #include "otbMath.h"
 #include "vnl/vnl_matrix.h"
 
diff --git a/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCovarianceMatrixFunctor.h b/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCovarianceMatrixFunctor.h
index a1cc099a65b8c17cbd525443fe96937e315b0f3a..f24ee87fdbc4d89e6ce492ce35471683063ac117 100644
--- a/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCovarianceMatrixFunctor.h
+++ b/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCovarianceMatrixFunctor.h
@@ -21,7 +21,7 @@
 #ifndef otbSinclairToReciprocalCovarianceMatrixFunctor_h
 #define otbSinclairToReciprocalCovarianceMatrixFunctor_h
 
-#include "std::complex.h"
+#include <complex>
 #include "otbMath.h"
 #include "vnl/vnl_matrix.h"
 
diff --git a/Modules/Filtering/Polarimetry/test/otbPolarimetricSynthesisFunctor.cxx b/Modules/Filtering/Polarimetry/test/otbPolarimetricSynthesisFunctor.cxx
index 65661769d571c973caeaffb07994eea4f96de73b..2acdf6da00e6cd33933b986082efd803e4c733b9 100644
--- a/Modules/Filtering/Polarimetry/test/otbPolarimetricSynthesisFunctor.cxx
+++ b/Modules/Filtering/Polarimetry/test/otbPolarimetricSynthesisFunctor.cxx
@@ -18,8 +18,8 @@
  * limitations under the License.
  */
 
-#include "std::complex.h"
-#include "vcl_cmath.h"
+#include <complex>
+#include <cmath>
 #include "otbPolarimetricSynthesisFunctor.h"
 
 int otbPolarimetricSynthesisFunctor(int itkNotUsed(argc), char * itkNotUsed(argv)[])
diff --git a/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.h b/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.h
index 6b7af43801a11bd85ce1fa68654780a53a071a6e..316bd2f93949b149711c8a8812f25aebb7fae96c 100644
--- a/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.h
+++ b/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.h
@@ -26,7 +26,7 @@
 #include "itkImageToImageFilter.h"
 #include "itkImageRegionConstIterator.h"
 #include "itkImageRegionConstIteratorWithIndex.h"
-#include <vcl_algorithm.h>
+#include <algorithm>
 
 
 namespace otb
diff --git a/Modules/Filtering/TimeSeries/include/otbTimeSeries.h b/Modules/Filtering/TimeSeries/include/otbTimeSeries.h
index 2e3f180459895dad8bf412af20fe21f9483301e0..0631825ea4b6a93abc10b234a08e840cdbc69859 100644
--- a/Modules/Filtering/TimeSeries/include/otbTimeSeries.h
+++ b/Modules/Filtering/TimeSeries/include/otbTimeSeries.h
@@ -22,7 +22,7 @@
 #define otbTimeSeries_h
 
 #include "itkFixedArray.h"
-#include <vcl_cmath.h>
+#include <cmath>
 
 namespace otb
 {
diff --git a/Modules/Filtering/Wavelet/src/otbWaveletGenerator.cxx b/Modules/Filtering/Wavelet/src/otbWaveletGenerator.cxx
index 4d817eda57d151b918970c9c90e182b8cc1dc9c7..7680210873bcd582c9f4a85bec43a6ac34371028 100644
--- a/Modules/Filtering/Wavelet/src/otbWaveletGenerator.cxx
+++ b/Modules/Filtering/Wavelet/src/otbWaveletGenerator.cxx
@@ -22,7 +22,7 @@
 
 #include "otbWaveletGenerator.h"
 
-#include <vcl_cmath.h>
+#include <cmath>
 #include "itkMacro.h"
 #include "otbMath.h"
 
diff --git a/Modules/Hyperspectral/EndmembersExtraction/include/otbEigenvalueLikelihoodMaximisation.hxx b/Modules/Hyperspectral/EndmembersExtraction/include/otbEigenvalueLikelihoodMaximisation.hxx
index 621195c3dd32483d38653c0c9f478b1cc4347883..296218322d616cf5b210b1c9565c9a120b0f0383 100644
--- a/Modules/Hyperspectral/EndmembersExtraction/include/otbEigenvalueLikelihoodMaximisation.hxx
+++ b/Modules/Hyperspectral/EndmembersExtraction/include/otbEigenvalueLikelihoodMaximisation.hxx
@@ -24,7 +24,7 @@
 
 #include "otbEigenvalueLikelihoodMaximisation.h"
 
-#include <vcl_algorithm.h>
+#include <algorithm>
 
 namespace otb
 {
diff --git a/Modules/Hyperspectral/EndmembersExtraction/include/otbVirtualDimensionality.hxx b/Modules/Hyperspectral/EndmembersExtraction/include/otbVirtualDimensionality.hxx
index e9cd3213df13daa8fda9ca4ec050004ac213df29..5feafb1bb6015f1707a9acc3f888f689e19dd21d 100644
--- a/Modules/Hyperspectral/EndmembersExtraction/include/otbVirtualDimensionality.hxx
+++ b/Modules/Hyperspectral/EndmembersExtraction/include/otbVirtualDimensionality.hxx
@@ -24,7 +24,7 @@
 
 #include "otbVirtualDimensionality.h"
 
-#include <vcl_algorithm.h>
+#include <algorithm>
 #include "otb_boost_math_normal_header.h"
 
 namespace otb
diff --git a/Modules/Registration/Stereo/include/otbAdhesionCorrectionFilter.h b/Modules/Registration/Stereo/include/otbAdhesionCorrectionFilter.h
index 52128fc0fc4f7db5f8a33b8678f4e919beb49c98..71506f6b388a775e0552d45a538a2980284d132f 100644
--- a/Modules/Registration/Stereo/include/otbAdhesionCorrectionFilter.h
+++ b/Modules/Registration/Stereo/include/otbAdhesionCorrectionFilter.h
@@ -26,7 +26,7 @@
 #include "itkConstNeighborhoodIterator.h"
 #include "itkImageRegionConstIterator.h"
 #include "itkImageLinearConstIteratorWithIndex.h"
-#include <vcl_algorithm.h>
+#include <algorithm>
 
 namespace otb
 {
diff --git a/Modules/Visualization/Ice/include/otbGlImageActor.h b/Modules/Visualization/Ice/include/otbGlImageActor.h
index d155ce9f46f4de1098a80092990688962b63b290..8311e1d6e6561b5ddf12b7fdbb28284cfc4e558e 100644
--- a/Modules/Visualization/Ice/include/otbGlImageActor.h
+++ b/Modules/Visualization/Ice/include/otbGlImageActor.h
@@ -22,7 +22,7 @@
 #define otb_GlImageActor_h
 
 
-#include <vcl_algorithm.h>
+#include <algorithm>
 
 #include "itkCenteredRigid2DTransform.h"