diff --git a/Framework/API/src/IMDWorkspace.cpp b/Framework/API/src/IMDWorkspace.cpp
index 248fd5c8d146a679d3a461add5e28f3342ef6d39..10f38bf13e560010e83054376d1e331a90f7f327 100644
--- a/Framework/API/src/IMDWorkspace.cpp
+++ b/Framework/API/src/IMDWorkspace.cpp
@@ -135,7 +135,7 @@ const std::string IMDWorkspace::toString() const {
 void IMDWorkspace::makeSinglePointWithNaN(std::vector<coord_t> &x,
                                           std::vector<signal_t> &y,
                                           std::vector<signal_t> &e) const {
-  x.emplace_back(0);
+  x.emplace_back(0.f);
   y.emplace_back(std::numeric_limits<signal_t>::quiet_NaN());
   e.emplace_back(std::numeric_limits<signal_t>::quiet_NaN());
 }
diff --git a/Framework/API/src/IndexProperty.cpp b/Framework/API/src/IndexProperty.cpp
index 3a14b0852a07770cd4c520dd2c601999b6b55d40..977b69f8056ba68787fb6168c491932a0be54a7b 100644
--- a/Framework/API/src/IndexProperty.cpp
+++ b/Framework/API/src/IndexProperty.cpp
@@ -9,6 +9,7 @@
 #include "MantidIndexing/GlobalSpectrumIndex.h"
 #include "MantidIndexing/IndexInfo.h"
 #include "MantidIndexing/SpectrumNumber.h"
+#include "MantidKernel/WarningSuppressions.h"
 
 namespace Mantid {
 namespace API {
@@ -73,6 +74,7 @@ Indexing::SpectrumIndexSet IndexProperty::getIndices() const {
             static_cast<Indexing::SpectrumNumber>(static_cast<int32_t>(max)));
       }
     } else {
+      MSVC_DIAG_OFF(4244);
       switch (type) {
       case IndexType::WorkspaceIndex:
         return indexInfo.makeIndexSet(
@@ -84,6 +86,7 @@ Indexing::SpectrumIndexSet IndexProperty::getIndices() const {
         return indexInfo.makeIndexSet(spectrumNumbers);
       }
       }
+      MSVC_DIAG_ON(4244);
     }
   }
 
diff --git a/Framework/Algorithms/test/WienerSmoothTest.h b/Framework/Algorithms/test/WienerSmoothTest.h
index 2e23642e37ab259b48dfb7aeaaee2913128084b4..eb772bfbdb3df66222ed75313a7000b3ef0dcd95 100644
--- a/Framework/Algorithms/test/WienerSmoothTest.h
+++ b/Framework/Algorithms/test/WienerSmoothTest.h
@@ -647,8 +647,9 @@ private:
       Y.assign(y, y + ny);
       E.assign(e, e + ny);
       using std::placeholders::_1;
-      std::transform(Y.begin(), Y.end(), Y.begin(),
-                     std::bind(std::multiplies<double>(), _1, i + 1));
+      std::transform(
+          Y.begin(), Y.end(), Y.begin(),
+          std::bind(std::multiplies<double>(), _1, static_cast<double>(i + 1)));
     }
 
     return dataWS;
diff --git a/Framework/DataObjects/test/Histogram1DTest.h b/Framework/DataObjects/test/Histogram1DTest.h
index 5ff45b6a1ef48468e829eacd1e15deff057e1114..8509ef2d3769eeb13f035354a3e609ec8ca0b657 100644
--- a/Framework/DataObjects/test/Histogram1DTest.h
+++ b/Framework/DataObjects/test/Histogram1DTest.h
@@ -175,7 +175,7 @@ public:
     // throws so suppress the warning
     MSVC_DIAG_OFF(4834)
     TS_ASSERT_THROWS(h.dataX().at(nel), const std::out_of_range &);
-    MSVC_DIAG_ON()
+    MSVC_DIAG_ON(4834)
   }
   void testrangeexceptionY() {
     h.setCounts(y1);
@@ -183,7 +183,7 @@ public:
     // throws so suppress the warning
     MSVC_DIAG_OFF(4834)
     TS_ASSERT_THROWS(h.dataY().at(nel), const std::out_of_range &);
-    MSVC_DIAG_ON()
+    MSVC_DIAG_ON(4834)
   }
   void testrangeexceptionE() {
     h.setCounts(y1);
@@ -192,7 +192,7 @@ public:
     // throws so suppress the warning
     MSVC_DIAG_OFF(4834)
     TS_ASSERT_THROWS(h.dataE().at(nel), const std::out_of_range &);
-    MSVC_DIAG_ON()
+    MSVC_DIAG_ON(4834)
   }
 
   void test_copy_constructor() {
diff --git a/Framework/DataObjects/test/MDEventWorkspaceTest.h b/Framework/DataObjects/test/MDEventWorkspaceTest.h
index aac5b398a2728f7abc4dbbf6a999a152159268a1..0a152faa94fa28edf7e0f11c8c6a8e83d3914117 100644
--- a/Framework/DataObjects/test/MDEventWorkspaceTest.h
+++ b/Framework/DataObjects/test/MDEventWorkspaceTest.h
@@ -408,12 +408,12 @@ public:
     std::vector<coord_t> min;
     std::vector<coord_t> max;
 
-    min.emplace_back(0);
-    min.emplace_back(0);
-    min.emplace_back(0);
-    max.emplace_back(1.5);
-    max.emplace_back(1.5);
-    max.emplace_back(1.5);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    max.emplace_back(1.5f);
+    max.emplace_back(1.5f);
+    max.emplace_back(1.5f);
 
     // Create a function to mask some of the workspace.
     auto function = std::make_unique<MDBoxImplicitFunction>(min, max);
@@ -570,12 +570,12 @@ public:
     std::vector<coord_t> min;
     std::vector<coord_t> max;
 
-    min.emplace_back(0);
-    min.emplace_back(0);
-    min.emplace_back(0);
-    max.emplace_back(10);
-    max.emplace_back(10);
-    max.emplace_back(10);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    max.emplace_back(10.f);
+    max.emplace_back(10.f);
+    max.emplace_back(10.f);
 
     // Create an function that encompases 1/4 of the total bins.
     auto function = std::make_unique<MDBoxImplicitFunction>(min, max);
@@ -593,9 +593,9 @@ public:
     std::vector<coord_t> max;
 
     // Make the box lay over a non-intersecting region of space.
-    min.emplace_back(-1);
-    min.emplace_back(-1);
-    min.emplace_back(-1);
+    min.emplace_back(-1.f);
+    min.emplace_back(-1.f);
+    min.emplace_back(-1.f);
     max.emplace_back(-0.01f);
     max.emplace_back(-0.01f);
     max.emplace_back(-0.01f);
@@ -611,11 +611,11 @@ public:
     std::vector<coord_t> max;
 
     // Make the box that covers half the bins in the workspace.
-    min.emplace_back(0);
-    min.emplace_back(0);
-    min.emplace_back(0);
-    max.emplace_back(10);
-    max.emplace_back(10);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    max.emplace_back(10.f);
+    max.emplace_back(10.f);
     max.emplace_back(4.99f);
 
     // Create an function that encompases 1/4 of the total bins.
@@ -628,12 +628,12 @@ public:
     // Create a function that masks everything.
     std::vector<coord_t> min;
     std::vector<coord_t> max;
-    min.emplace_back(0);
-    min.emplace_back(0);
-    min.emplace_back(0);
-    max.emplace_back(10);
-    max.emplace_back(10);
-    max.emplace_back(10);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    max.emplace_back(10.f);
+    max.emplace_back(10.f);
+    max.emplace_back(10.f);
     auto function = std::make_unique<MDBoxImplicitFunction>(min, max);
 
     MDEventWorkspace3Lean::sptr ws =
diff --git a/Framework/DataObjects/test/MDHistoWorkspaceIteratorTest.h b/Framework/DataObjects/test/MDHistoWorkspaceIteratorTest.h
index 89d16b77bb1492be7f94fc018e50483a7def7b9c..6d154996b1ecaeb7c88d55c35807f182192b4ec9 100644
--- a/Framework/DataObjects/test/MDHistoWorkspaceIteratorTest.h
+++ b/Framework/DataObjects/test/MDHistoWorkspaceIteratorTest.h
@@ -106,8 +106,8 @@ public:
 
     std::vector<coord_t> normal_vector;
     std::vector<coord_t> bound_vector;
-    normal_vector.emplace_back(1.);
-    bound_vector.emplace_back(3.);
+    normal_vector.emplace_back(1.f);
+    bound_vector.emplace_back(3.f);
 
     MDImplicitFunction *function = new MDImplicitFunction();
     function->addPlane(MDPlane(normal_vector, bound_vector));
diff --git a/Framework/DataObjects/test/MDHistoWorkspaceTest.h b/Framework/DataObjects/test/MDHistoWorkspaceTest.h
index 88f393ec266d59cc4595f060c088250841d48e99..f51d8d524774535b1f23e47b52374a01bd0f537d 100644
--- a/Framework/DataObjects/test/MDHistoWorkspaceTest.h
+++ b/Framework/DataObjects/test/MDHistoWorkspaceTest.h
@@ -561,10 +561,10 @@ public:
 
     std::vector<coord_t> min;
     std::vector<coord_t> max;
-    min.emplace_back(0);
-    min.emplace_back(0);
-    max.emplace_back(5);
-    max.emplace_back(5);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    max.emplace_back(5.f);
+    max.emplace_back(5.f);
 
     // Mask part of the workspace
     auto function = std::make_unique<MDBoxImplicitFunction>(min, max);
@@ -982,12 +982,12 @@ public:
     std::vector<coord_t> max;
 
     // Make the box that covers the whole workspace.
-    min.emplace_back(0);
-    min.emplace_back(0);
-    min.emplace_back(0);
-    max.emplace_back(10);
-    max.emplace_back(10);
-    max.emplace_back(10);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    max.emplace_back(10.f);
+    max.emplace_back(10.f);
+    max.emplace_back(10.f);
 
     // Create an function that encompases ALL of the total bins.
     auto function = std::make_unique<MDBoxImplicitFunction>(min, max);
@@ -1114,12 +1114,12 @@ public:
     std::vector<coord_t> max;
 
     // Make the box that covers half the bins in the workspace.
-    min.emplace_back(0);
-    min.emplace_back(0);
-    min.emplace_back(0);
-    max.emplace_back(10);
-    max.emplace_back(10);
-    max.emplace_back(10);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    max.emplace_back(10.f);
+    max.emplace_back(10.f);
+    max.emplace_back(10.f);
 
     // Create an function that encompases ALL of the total bins.
     auto function = std::make_unique<MDBoxImplicitFunction>(min, max);
@@ -1131,11 +1131,11 @@ public:
     std::vector<coord_t> max;
 
     // Make the box that covers half the bins in the workspace.
-    min.emplace_back(0);
-    min.emplace_back(0);
-    min.emplace_back(0);
-    max.emplace_back(10);
-    max.emplace_back(10);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    max.emplace_back(10.f);
+    max.emplace_back(10.f);
     max.emplace_back(4.99f);
 
     // Create an function that encompases 1/2 of the total bins.
@@ -1147,12 +1147,12 @@ public:
     // Create a function that masks everything.
     std::vector<coord_t> min;
     std::vector<coord_t> max;
-    min.emplace_back(0);
-    min.emplace_back(0);
-    min.emplace_back(0);
-    max.emplace_back(10);
-    max.emplace_back(10);
-    max.emplace_back(10);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    min.emplace_back(0.f);
+    max.emplace_back(10.f);
+    max.emplace_back(10.f);
+    max.emplace_back(10.f);
     auto function = std::make_unique<MDBoxImplicitFunction>(min, max);
 
     MDEventWorkspace3Lean::sptr ws =
diff --git a/Framework/Geometry/inc/MantidGeometry/Crystal/MatrixVectorPairParser.h b/Framework/Geometry/inc/MantidGeometry/Crystal/MatrixVectorPairParser.h
index a8822c85c1aa3c0cf09b837431704395acd02966..dc4a14f71762652f937ad5dc63013248df05cb07 100644
--- a/Framework/Geometry/inc/MantidGeometry/Crystal/MatrixVectorPairParser.h
+++ b/Framework/Geometry/inc/MantidGeometry/Crystal/MatrixVectorPairParser.h
@@ -12,7 +12,13 @@
 #include "MantidGeometry/DllConfig.h"
 
 #include "MantidKernel/Exception.h"
+#if defined(_MSC_VER)
+#define _SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING
+#endif
 #include <boost/spirit/include/qi.hpp>
+#if defined(_MSC_VER)
+#undef _SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING
+#endif
 #include <functional>
 #include <map>
 
diff --git a/Framework/Kernel/inc/MantidKernel/WarningSuppressions.h b/Framework/Kernel/inc/MantidKernel/WarningSuppressions.h
index 1d9de27ec97d7c72883cd7de67407c7dbbf4b999..1ffd322d9e56c56417e35e304542cadaaa39bd18 100644
--- a/Framework/Kernel/inc/MantidKernel/WarningSuppressions.h
+++ b/Framework/Kernel/inc/MantidKernel/WarningSuppressions.h
@@ -82,7 +82,7 @@
 #define MSVC_DIAG_OFF(id)                                                        \
   __pragma(warning(push))                                                        \
   __pragma(warning(disable : id))
-#define MSVC_DIAG_ON() __pragma(warning(pop))
+#define MSVC_DIAG_ON(id) __pragma(warning(pop))
 // clang-format on
 #else
 #define MSVC_DIAG_OFF(x)
diff --git a/Framework/Kernel/src/NetworkProxyWin.cpp b/Framework/Kernel/src/NetworkProxyWin.cpp
index f7c8c7a6b1267f4e277306d2ce7837732d5ff9f0..b04c02cb17419fe9725476c1c5c4f2ecb4968549 100644
--- a/Framework/Kernel/src/NetworkProxyWin.cpp
+++ b/Framework/Kernel/src/NetworkProxyWin.cpp
@@ -8,6 +8,7 @@
 #if defined(_WIN32) || defined(_WIN64)
 
 #include "MantidKernel/NetworkProxy.h"
+#include "MantidKernel/WarningSuppressions.h"
 // std
 #include <sstream>
 // windows
@@ -117,7 +118,9 @@ bool get_proxy_configuration_win(const std::string &target_url,
   if (fail) {
     err_msg = info.str();
   }
+  MSVC_DIAG_OFF(4244)
   proxy_str = std::string(proxy.begin(), proxy.end());
+  MSVC_DIAG_ON(4244)
   return !fail;
 }
 
diff --git a/Framework/MDAlgorithms/src/MDNorm.cpp b/Framework/MDAlgorithms/src/MDNorm.cpp
index 8522a1c76b7d86d7ac9c78e248287ff4f3107d42..44e17c6971223581b36f3eba4ad4f655be04f2cc 100644
--- a/Framework/MDAlgorithms/src/MDNorm.cpp
+++ b/Framework/MDAlgorithms/src/MDNorm.cpp
@@ -652,10 +652,10 @@ std::map<std::string, std::string> MDNorm::getBinParameters() {
       for (size_t j = 0; j < originalDimensionNames.size(); j++) {
         if (j == static_cast<size_t>(dimIndex)) {
           propertyValue << ",1";
-          transformation.emplace_back(1.);
+          transformation.emplace_back(1.f);
         } else {
           propertyValue << ",0";
-          transformation.emplace_back(0.);
+          transformation.emplace_back(0.f);
         }
       }
       parameters.emplace(property, propertyValue.str());
diff --git a/Framework/MDAlgorithms/src/MDNormDirectSC.cpp b/Framework/MDAlgorithms/src/MDNormDirectSC.cpp
index 48121788de18a066d3ddff530b7610ee09534066..6d589fc3c09784cae697dcc236221c96b18993cb 100644
--- a/Framework/MDAlgorithms/src/MDNormDirectSC.cpp
+++ b/Framework/MDAlgorithms/src/MDNormDirectSC.cpp
@@ -531,7 +531,7 @@ for (int64_t i = 0; i < ndets; i++) {
   // pre-allocate for efficiency and copy non-hkl dim values into place
   pos.resize(vmdDims + otherValues.size() + 1);
   std::copy(otherValues.begin(), otherValues.end(), pos.begin() + vmdDims);
-  pos.emplace_back(1.);
+  pos.emplace_back(1.f);
   auto intersectionsBegin = intersections.begin();
   for (auto it = intersectionsBegin + 1; it != intersections.end(); ++it) {
     const auto &curIntSec = *it;
diff --git a/Framework/MDAlgorithms/src/MDNormSCD.cpp b/Framework/MDAlgorithms/src/MDNormSCD.cpp
index 5f31243d10a167bc4123deabc470d6475fd7bfdb..6472c722160e7f5e2d513d00ec4cda1b1adcfc45 100644
--- a/Framework/MDAlgorithms/src/MDNormSCD.cpp
+++ b/Framework/MDAlgorithms/src/MDNormSCD.cpp
@@ -495,7 +495,7 @@ for (int64_t i = 0; i < ndets; i++) {
   // pre-allocate for efficiency and copy non-hkl dim values into place
   pos.resize(vmdDims + otherValues.size());
   std::copy(otherValues.begin(), otherValues.end(), pos.begin() + vmdDims - 1);
-  pos.emplace_back(1.);
+  pos.emplace_back(1.f);
 
   for (auto it = intersectionsBegin + 1; it != intersections.end(); ++it) {
     const auto &curIntSec = *it;
diff --git a/Framework/MDAlgorithms/src/MDTransfQ3D.cpp b/Framework/MDAlgorithms/src/MDTransfQ3D.cpp
index 521b7b57eb1a967f39d34f7998eb20af1d5296a6..124fb981074c5a5cd3b2419547f0231b831c3562 100644
--- a/Framework/MDAlgorithms/src/MDTransfQ3D.cpp
+++ b/Framework/MDAlgorithms/src/MDTransfQ3D.cpp
@@ -152,26 +152,22 @@ bool MDTransfQ3D::calcMatrixCoord3DElastic(const double &k0,
 
   // Dimension limits have to be converted to coord_t, otherwise floating point
   // error will cause valid events to be discarded.
-  std::vector<coord_t> dim_min;
-  dim_min.reserve(m_DimMin.size());
-  std::copy(m_DimMin.cbegin(), m_DimMin.cend(), std::back_inserter(dim_min));
-  std::vector<coord_t> dim_max;
-  dim_max.reserve(m_DimMax.size());
-  std::copy(m_DimMax.cbegin(), m_DimMax.cend(), std::back_inserter(dim_max));
-
   Coord[0] = static_cast<coord_t>(m_RotMat[0] * qx + m_RotMat[1] * qy +
                                   m_RotMat[2] * qz);
-  if (Coord[0] < dim_min[0] || Coord[0] >= dim_max[0])
+  if (Coord[0] < static_cast<coord_t>(m_DimMin[0]) ||
+      Coord[0] >= static_cast<coord_t>(m_DimMax[0]))
     return false;
 
   Coord[1] = static_cast<coord_t>(m_RotMat[3] * qx + m_RotMat[4] * qy +
                                   m_RotMat[5] * qz);
-  if (Coord[1] < dim_min[1] || Coord[1] >= dim_max[1])
+  if (Coord[1] < static_cast<coord_t>(m_DimMin[1]) ||
+      Coord[1] >= static_cast<coord_t>(m_DimMax[1]))
     return false;
 
   Coord[2] = static_cast<coord_t>(m_RotMat[6] * qx + m_RotMat[7] * qy +
                                   m_RotMat[8] * qz);
-  if (Coord[2] < dim_min[2] || Coord[2] >= dim_max[2])
+  if (Coord[2] < static_cast<coord_t>(m_DimMin[2]) ||
+      Coord[2] >= static_cast<coord_t>(m_DimMax[2]))
     return false;
 
   if (std::sqrt(Coord[0] * Coord[0] + Coord[1] * Coord[1] +
diff --git a/Framework/MDAlgorithms/src/SmoothMD.cpp b/Framework/MDAlgorithms/src/SmoothMD.cpp
index 5fcd208b7eb1d66a74a061df4338deb2f8a73fee..7c83fad6513a93bb958092ca461eb4dccf44b93f 100644
--- a/Framework/MDAlgorithms/src/SmoothMD.cpp
+++ b/Framework/MDAlgorithms/src/SmoothMD.cpp
@@ -227,9 +227,10 @@ SmoothMD::hatSmooth(IMDHistoWorkspace_const_sptr toSmooth,
       // We've already checked in the validator that the doubles we have are odd
       // integer values and well below max int
       std::vector<int> widthVectorInt;
-      widthVectorInt.reserve(widthVector.size());
-      std::copy(widthVector.cbegin(), widthVector.cend(),
-                std::back_inserter(widthVectorInt));
+      widthVectorInt.resize(widthVector.size());
+      std::transform(widthVector.cbegin(), widthVector.cend(),
+                     widthVectorInt.begin(),
+                     [](double w) -> int { return static_cast<int>(w); });
 
       std::vector<size_t> neighbourIndexes =
           iterator->findNeighbourIndexesByWidth(widthVectorInt);
diff --git a/Framework/MDAlgorithms/test/SaveMD2Test.h b/Framework/MDAlgorithms/test/SaveMD2Test.h
index eb43936b5d81ceb03f51e7e618777591b9f54a13..617e3330cdbeec1cb367562100cd961db3507d54 100644
--- a/Framework/MDAlgorithms/test/SaveMD2Test.h
+++ b/Framework/MDAlgorithms/test/SaveMD2Test.h
@@ -217,7 +217,7 @@ public:
     alg.execute();
     TS_ASSERT(alg.isExecuted());
     std::string this_filename = alg.getProperty("Filename");
-    long unsigned int fileSize = Poco::File(this_filename).getSize();
+    const auto fileSize = Poco::File(this_filename).getSize();
     if (Poco::File(this_filename).exists())
       Poco::File(this_filename).remove();
 
@@ -235,7 +235,7 @@ public:
     alg2.execute();
     TS_ASSERT(alg2.isExecuted());
     std::string this_filename2 = alg2.getProperty("Filename");
-    long unsigned int fileSize2 = Poco::File(this_filename2).getSize();
+    const auto fileSize2 = Poco::File(this_filename2).getSize();
     if (Poco::File(this_filename2).exists())
       Poco::File(this_filename2).remove();
 
diff --git a/Framework/WorkflowAlgorithms/src/SofTwoThetaTOF.cpp b/Framework/WorkflowAlgorithms/src/SofTwoThetaTOF.cpp
index 4c2a50fc97a7a7c16dfcfce0a3086da90e6e5219..2bccf31cd4a0eff2404d80760aaf2bf8b573b359 100644
--- a/Framework/WorkflowAlgorithms/src/SofTwoThetaTOF.cpp
+++ b/Framework/WorkflowAlgorithms/src/SofTwoThetaTOF.cpp
@@ -198,13 +198,7 @@ SofTwoThetaTOF::groupByTwoTheta(API::MatrixWorkspace_sptr &ws,
     auto tempPath = boost::filesystem::temp_directory_path();
     tempPath /= boost::filesystem::unique_path(
         "detector-grouping-%%%%-%%%%-%%%%-%%%%.xml");
-#ifdef _WIN32
-    // A dirty way to convert a wstring to string.
-    auto const wfilename = tempPath.native();
-    filename = std::string(wfilename.cbegin(), wfilename.cend());
-#else
-    filename = tempPath.native();
-#endif
+    filename = tempPath.string();
     generateGrouping->setProperty("GenerateParFile", false);
     // Make sure the file gets deleted at scope exit.
     // enable cppcheck-suppress unreadVariable if needed
diff --git a/Framework/WorkflowAlgorithms/test/SofTwoThetaTOFTest.h b/Framework/WorkflowAlgorithms/test/SofTwoThetaTOFTest.h
index 2264c1d80563172a5c6d15ff8eb09ecd002f20b7..2b0504e2f579857c03711a8ea47986bcd797db13 100644
--- a/Framework/WorkflowAlgorithms/test/SofTwoThetaTOFTest.h
+++ b/Framework/WorkflowAlgorithms/test/SofTwoThetaTOFTest.h
@@ -98,12 +98,7 @@ public:
     TS_ASSERT_THROWS_NOTHING(alg.setProperty("AngleStep", angleStep))
     auto tempXml = boost::filesystem::temp_directory_path();
     tempXml /= boost::filesystem::unique_path("SofTwoThetaTest-%%%%%%%%.xml");
-#if _WIN32
-    auto const wfilename = tempXml.native();
-    std::string const filename{wfilename.cbegin(), wfilename.cend()};
-#else
-    std::string const filename{tempXml.native()};
-#endif
+    std::string const filename{tempXml.string()};
     TS_ASSERT_THROWS_NOTHING(alg.setProperty("GroupingFilename", filename))
     TS_ASSERT_THROWS_NOTHING(alg.execute())
     TS_ASSERT(alg.isExecuted())
diff --git a/qt/scientific_interfaces/test/ISISReflectometry/Common/CoderCommonTester.h b/qt/scientific_interfaces/test/ISISReflectometry/Common/CoderCommonTester.h
index 3db2c579220ead5a2ee87d6f51e059803cab65c5..80cf962c5170f0bff60e2f02200717a686865a8f 100644
--- a/qt/scientific_interfaces/test/ISISReflectometry/Common/CoderCommonTester.h
+++ b/qt/scientific_interfaces/test/ISISReflectometry/Common/CoderCommonTester.h
@@ -295,7 +295,7 @@ private:
     TS_ASSERT_EQUALS(gui->m_ui.tabRadioButton->isChecked(),
                      map[QString("tabRadioButton")].toBool())
     TS_ASSERT_EQUALS(gui->m_ui.fileFormatComboBox->currentIndex(),
-                     map[QString("fileFormatComboBox")].toBool())
+                     map[QString("fileFormatComboBox")].toInt())
     TS_ASSERT_EQUALS(gui->m_ui.filterEdit->text(),
                      map[QString("filterEdit")].toString())
     TS_ASSERT_EQUALS(gui->m_ui.regexCheckBox->isChecked(),
@@ -332,4 +332,4 @@ private:
 } // namespace CustomInterfaces
 } // namespace MantidQt
 
-#endif /* CODER_COMMON_TESTER_H_ */
\ No newline at end of file
+#endif /* CODER_COMMON_TESTER_H_ */
diff --git a/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/SafeQwtPlot.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/SafeQwtPlot.h
index dd481901f488d0fe2a0a759919b7048fcefa4197..d68c5e69b2106289f9119b6b2ac4c62490808e5c 100644
--- a/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/SafeQwtPlot.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/SafeQwtPlot.h
@@ -13,7 +13,7 @@
 #include "qwt_text.h"
 MSVC_DIAG_OFF(4244)
 #include <QPainter>
-MSVC_DIAG_ON()
+MSVC_DIAG_ON(4244)
 #include <qwt_plot.h>
 
 namespace MantidQt {