diff --git a/Modules/Applications/AppClassification/app/otbDSFuzzyModelEstimation.cxx b/Modules/Applications/AppClassification/app/otbDSFuzzyModelEstimation.cxx
index 528cc0496fd11082c1cb4fef98cf14f38923ec8b..dd9d347a1fc42ecfc0a190384dfeaa1b321e6b25 100644
--- a/Modules/Applications/AppClassification/app/otbDSFuzzyModelEstimation.cxx
+++ b/Modules/Applications/AppClassification/app/otbDSFuzzyModelEstimation.cxx
@@ -414,7 +414,7 @@ private:
       {
       // An error has occurred in the optimization.
       // Update the parameters
-      otbAppLogFATAL("ERROR: Exception Catched : "<< err.GetDescription() << std::endl
+      otbAppLogFATAL("ERROR: Exception Caught : "<< err.GetDescription() << std::endl
         << "numberOfIterations : " << m_Optimizer->GetOptimizer()->get_num_evaluations() << std::endl
         << "Results : " << m_Optimizer->GetCurrentPosition() << std::endl);
       }
diff --git a/Modules/Applications/AppSARDecompositions/app/otbSARDecompositions.cxx b/Modules/Applications/AppSARDecompositions/app/otbSARDecompositions.cxx
index dc0aa92b375fe4dd6cbf819c8aa2f6ba7099610f..7bcf5d63e57cbf9027bfa2212ef2e9c59a8d17bd 100644
--- a/Modules/Applications/AppSARDecompositions/app/otbSARDecompositions.cxx
+++ b/Modules/Applications/AppSARDecompositions/app/otbSARDecompositions.cxx
@@ -134,7 +134,7 @@ private:
     SetParameterDescription("decomp.pauli","Pauli coherent decomposition");
     
     AddParameter(ParameterType_Group,"inco","Incoherent decompositions");
-    SetParameterDescription("inco","This group allows to set parameters related to the incoherent decompositions.");
+    SetParameterDescription("inco","This group allows setting parameters related to the incoherent decompositions.");
     
     AddParameter(ParameterType_Int, "inco.kernelsize",   "Kernel size for spatial incoherent averaging.");
     SetParameterDescription("inco.kernelsize", "Minute (0-59)");
diff --git a/Modules/Applications/AppSARPolarMatrixConvert/app/otbSARPolarMatrixConvert.cxx b/Modules/Applications/AppSARPolarMatrixConvert/app/otbSARPolarMatrixConvert.cxx
index 268b4d855ab176899d059270822f41d9d58efd2c..208d1355d036c7d281cca401719e6c6ecf248fc3 100644
--- a/Modules/Applications/AppSARPolarMatrixConvert/app/otbSARPolarMatrixConvert.cxx
+++ b/Modules/Applications/AppSARPolarMatrixConvert/app/otbSARPolarMatrixConvert.cxx
@@ -193,7 +193,7 @@ private:
     "This application allows converting classical polarimetric matrices to each other.\n"
     "For instance, it is possible to get the coherency matrix from the Sinclar one, or the Mueller matrix from the coherency one.\n"
     "The filters used in this application never handle matrices, but images where each band is related to their elements.\n"
-    "As most of the time SAR polarimetry handles symetric/hermitian matrices, only the relevant elements are stored, so that the images representing them have a minimal number of bands.\n"
+    "As most of the time SAR polarimetry handles symmetric/hermitian matrices, only the relevant elements are stored, so that the images representing them have a minimal number of bands.\n"
     "For instance, the coherency matrix size is 3x3 in the monostatic case, and 4x4 in the bistatic case : it will thus be stored in a 6-band or a 10-band complex image (the diagonal and the upper elements of the matrix).\n"
     "\n"
     "The Sinclair matrix is a special case : it is always represented as 3 or 4 one-band complex images (for mono- or bistatic case).\n"
diff --git a/Modules/Applications/AppSARPolarSynth/app/otbSARPolarSynth.cxx b/Modules/Applications/AppSARPolarSynth/app/otbSARPolarSynth.cxx
index 17f75f46172218b9e1e9c6ced7600e1524970898..bc498f074feef98b2afe04126bff52cd6605fe2e 100644
--- a/Modules/Applications/AppSARPolarSynth/app/otbSARPolarSynth.cxx
+++ b/Modules/Applications/AppSARPolarSynth/app/otbSARPolarSynth.cxx
@@ -63,7 +63,7 @@ private:
 						  "\n"
 						  "In order to determine the architecture, the application first relies on the number of bands of the input image.\n" 
 						  "1) Architecture HH_HV_VH_VV is the only one with four bands, there is no possible confusion.\n"
-						  "2) Concerning HH_HV_VV and HH_VH_VV architectures, both correspond to a three channels image. But they are processed in the same way, as the Sinclair matrix is symetric in the monostatic case.\n"
+						  "2) Concerning HH_HV_VV and HH_VH_VV architectures, both correspond to a three channels image. But they are processed in the same way, as the Sinclair matrix is symmetric in the monostatic case.\n"
 						  "3) Finally, the two last architectures (dual polarizations), can't be distinguished only by the number of bands of the input image.\n"
 						  "   User must then use the parameters emissionh and emissionv to indicate the architecture of the system : emissionh=1 and emissionv=0 --> HH_HV,  emissionh=0 and emissionv=1 --> VH_VV.\n"
 						  "Note : if the architecture is HH_HV, khii and psii are automatically set to 0°/0°; if the architecture is VH_VV, khii and psii are automatically set to 0°/90°.\n"
diff --git a/Modules/Applications/AppSegmentation/app/otbMeanShiftSmoothing.cxx b/Modules/Applications/AppSegmentation/app/otbMeanShiftSmoothing.cxx
index c02e5fab0535cea8d7e25cd24198401104067fc9..c69ec3f1475c44852e8165140fb040a7863ed28b 100644
--- a/Modules/Applications/AppSegmentation/app/otbMeanShiftSmoothing.cxx
+++ b/Modules/Applications/AppSegmentation/app/otbMeanShiftSmoothing.cxx
@@ -100,7 +100,7 @@ private:
     MandatoryOff("rangeramp");
 
     AddParameter(ParameterType_Empty, "modesearch", "Mode search.");
-    SetParameterDescription("modesearch", "If activated pixel iterative convergence is stopped if the path . Be careful, with this option, the result will slightly depend on thread number");
+    SetParameterDescription("modesearch", "If activated pixel iterative convergence is stopped if the path crosses an already converged pixel. Be careful, with this option, the result will slightly depend on thread number");
     EnableParameter("modesearch");
 
 
@@ -116,17 +116,7 @@ private:
   }
 
   void DoUpdateParameters() ITK_OVERRIDE
-  {
-    if(IsParameterEnabled("modesearch"))
-      {
-      MandatoryOn("foutpos");
-      EnableParameter("foutpos");
-      }
-    else
-      {
-      MandatoryOff("foutpos");
-      }
-  }
+  {}
 
   void DoExecute() ITK_OVERRIDE
   {
diff --git a/Modules/Core/LabelMap/include/otbShapeAttributesLabelMapFilter.txx b/Modules/Core/LabelMap/include/otbShapeAttributesLabelMapFilter.txx
index 35b7f251909caadc6a416e1f1177d9bbdb123998..4b5083061f46090bc58ce093fca3d10689ea5964 100644
--- a/Modules/Core/LabelMap/include/otbShapeAttributesLabelMapFilter.txx
+++ b/Modules/Core/LabelMap/include/otbShapeAttributesLabelMapFilter.txx
@@ -380,7 +380,7 @@ ShapeAttributesLabelObjectFunctor<TLabelObject, TLabelImage>
       // do this one here to avoid the double assigment in the following loop
       // when i == j
       centralMoments[i][i] += length * physicalPosition[i] * physicalPosition[i];
-      // central moments are symetrics, so avoid to compute them 2 times
+      // central moments are symmetrics, so avoid to compute them 2 times
       for (DimensionType j = i + 1; j < LabelObjectType::ImageDimension; ++j)
         {
         // note that we won't use that code if the image dimension is less than 3
diff --git a/Modules/Feature/Descriptors/include/otbImageToHessianDeterminantImageFilter.h b/Modules/Feature/Descriptors/include/otbImageToHessianDeterminantImageFilter.h
index 4b844ac2ca87dedcceb68dad3f7bdd3e9324df5c..747074bb810653a2a99f05af1c7892859b8bf57f 100644
--- a/Modules/Feature/Descriptors/include/otbImageToHessianDeterminantImageFilter.h
+++ b/Modules/Feature/Descriptors/include/otbImageToHessianDeterminantImageFilter.h
@@ -51,7 +51,7 @@ public:
 
   /*
    *
-   * \param input : A symetric Hessian Matrix
+   * \param input : A symmetric Hessian Matrix
    * \return  Determinant of the Hessian Matrix
    */
   inline TOutput operator ()(const TInput& input)
diff --git a/Modules/Feature/Edge/include/otbAssociativeSymmetricalSumImageFilter.h b/Modules/Feature/Edge/include/otbAssociativeSymmetricalSumImageFilter.h
index f5d8714b0035e00f1820b00a973e9813b151ccac..9211f0baf55936b36819135d2d752c299573ceb7 100644
--- a/Modules/Feature/Edge/include/otbAssociativeSymmetricalSumImageFilter.h
+++ b/Modules/Feature/Edge/include/otbAssociativeSymmetricalSumImageFilter.h
@@ -24,7 +24,7 @@ namespace otb
 {
 
 /** \class AssociativeSymmetricalSumImageFilter
- * \brief Implements an assymetric fusion of line detector image filter.
+ * \brief Implements an asymmetric fusion of line detector image filter.
  *
  * This class implements a fusion of the output images of
  * otb::LineRatioDetector and otb::LineCorrelationDetector
diff --git a/Modules/Filtering/ImageManipulation/include/otbGridResampleImageFilter.txx b/Modules/Filtering/ImageManipulation/include/otbGridResampleImageFilter.txx
index 51847f19280c9efde3ed018174bd3768baab9a25..f40fbd47e3bf33220aa4b34acd55ba3b68116af0 100644
--- a/Modules/Filtering/ImageManipulation/include/otbGridResampleImageFilter.txx
+++ b/Modules/Filtering/ImageManipulation/include/otbGridResampleImageFilter.txx
@@ -238,8 +238,8 @@ GridResampleImageFilter<TInputImage, TOutputImage, TInterpolatorPrecision>
     }
 
   // Compute ReachableOutputRegion
-  // InputImage buffered region corresponds to a region of the ouptut
-  // image. Computing it beforehand allows to save IsInsideBuffer
+  // InputImage buffered region corresponds to a region of the output
+  // image. Computing it beforehand allows saving IsInsideBuffer
   // calls in the interpolation loop
   
   // Compute the padding due to the interpolator
diff --git a/Modules/Registration/Stereo/include/otbLineOfSightOptimizer.h b/Modules/Registration/Stereo/include/otbLineOfSightOptimizer.h
index af29d7c2bf3cf98cbbf8c8ea5d87428489054ddf..e50771666cd874ac5a88011ee10263ac2f417f04 100644
--- a/Modules/Registration/Stereo/include/otbLineOfSightOptimizer.h
+++ b/Modules/Registration/Stereo/include/otbLineOfSightOptimizer.h
@@ -66,7 +66,7 @@ public:
 
   /** Compute the best intersection between N lines of sight.
    *  Starting points of every line of sight are stored in the point set 'pointA'
-   *  ending points are stored in 'pointB' (however, the computation is symetrical)*/
+   *  ending points are stored in 'pointB' (however, the computation is symmetrical)*/
   PointType Compute(PointSetPointerType pointA, PointSetPointerType pointB);
 
   /** Get the residues from last computation */
diff --git a/Modules/Segmentation/Labelling/include/otbLabelToBoundaryImageFilter.h b/Modules/Segmentation/Labelling/include/otbLabelToBoundaryImageFilter.h
index e8a0b4f338d4071a694961012df7f7ab1f50c73a..959d05ffdd799db2d45facbf62380a5ef29e32e2 100644
--- a/Modules/Segmentation/Labelling/include/otbLabelToBoundaryImageFilter.h
+++ b/Modules/Segmentation/Labelling/include/otbLabelToBoundaryImageFilter.h
@@ -30,7 +30,7 @@ namespace Functor
  * \brief Functor to extract segmentation boundaries
  * 
  * Functor intended to work with 3x3 neighborhood and scalar label image
- * The generated boundary is 1-pixel wide, so it is not symetric. 
+ * The generated boundary is 1-pixel wide, so it is not symmetric. 
  * Output value is 1 on the boundaries and 0 in the background
  * 
  * \ingroup OTBLabelling
@@ -63,7 +63,7 @@ public:
  * \brief Filter to extract boundaries of a label image
  * 
  * Filter intended to work with a scalar label image.
- * The generated boundary is 1-pixel wide, so it is not symetric. 
+ * The generated boundary is 1-pixel wide, so it is not symmetric. 
  * Output value is 1 on the boundaries and 0 in the background
  * 
  * \ingroup OTBLabelling
diff --git a/Modules/Visualization/Ice/include/otbGlView.h b/Modules/Visualization/Ice/include/otbGlView.h
index af90769098e4073484cd0b97d275ab942be161cf..1f027825de88bf14afa36779a5d727a01b88ec75 100644
--- a/Modules/Visualization/Ice/include/otbGlView.h
+++ b/Modules/Visualization/Ice/include/otbGlView.h
@@ -104,7 +104,7 @@ public:
   void Initialize(unsigned int sx, unsigned int sy);
 
   /**
-   * This method allows to add a new actor (deriving from GlActor) to
+   * This method allows adding a new actor (deriving from GlActor) to
    * the GlView. The actor can be identified by an optional key. If
    * not provided, and the default value is used, the method will
    * generate a key to identify the actor. In both case, the key is
@@ -132,7 +132,7 @@ public:
   void ClearActors();
 
   /**
-   * This method allows to retrieve a pointer to the actor identified
+   * This method allows retrieving a pointer to the actor identified
    * by the given key.
    * \param key The key identifying the actor to retrieve
    * \return A pointer to the retrieved actor. This pointer will be
diff --git a/SuperBuild/CMake/External_curl.cmake b/SuperBuild/CMake/External_curl.cmake
index b339fccfa9d90c611c28f4375555053c3e39d915..46310dc75d761fc9ed14acd268465505e3ebe881 100644
--- a/SuperBuild/CMake/External_curl.cmake
+++ b/SuperBuild/CMake/External_curl.cmake
@@ -9,8 +9,25 @@ if(NOT APPLE)
   ADDTO_DEPENDENCIES_IF_NOT_SYSTEM(OPENSSL)
 endif()
 
-#TODO: add openssl and other dependencies
+
 if(MSVC)
+
+if(NOT BUILD_SHARED_LIBS)
+  message(FATAL_ERROR "static build or curl not supported")
+endif()
+
+if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "amd64" OR
+    "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "AMD64" )
+  set(CURL_INSTALL_DIR_PREFIX "libcurl-vc-x64")
+else()
+  set(CURL_INSTALL_DIR_PREFIX "libcurl-vc-x86")
+endif()
+if("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
+  set(CURL_INSTALL_DIR_PREFIX "${CURL_INSTALL_DIR_PREFIX}-release")
+else()
+  set(CURL_INSTALL_DIR_PREFIX "${CURL_INSTALL_DIR_PREFIX}-debug")
+endif()
+
   ExternalProject_Add(CURL
     PREFIX CURL
     URL "http://curl.haxx.se/download/curl-7.40.0.tar.gz"
@@ -23,7 +40,8 @@ if(MSVC)
     PATCH_COMMAND ${CMAKE_COMMAND} -E copy_directory ${CURL_SB_SRC} ${CURL_SB_BUILD_DIR}
     CONFIGURE_COMMAND ""
     BUILD_COMMAND nmake /f ${CURL_SB_BUILD_DIR}/winbuild/Makefile.vc mode=dll WITH_ZLIB=dll WITH_DEVEL=${SB_INSTALL_PREFIX}
-    INSTALL_COMMAND ${CMAKE_COMMAND} -E chdir ${CURL_SB_BUILD_DIR}/builds/ ${CMAKE_COMMAND} -E copy_directory libcurl-vc-x86-release-dll-zlib-dll-ipv6-sspi-winssl ${SB_INSTALL_PREFIX}
+    INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory
+    ${CURL_SB_BUILD_DIR}/builds/${CURL_INSTALL_DIR_PREFIX}-dll-zlib-dll-ipv6-sspi-winssl/ ${SB_INSTALL_PREFIX}
     )
 
 else(UNIX)