diff --git a/Framework/Algorithms/src/IntegrateByComponent.cpp b/Framework/Algorithms/src/IntegrateByComponent.cpp
index d1f3d629e57a39825b39bcb7fbab0fdfb03645c4..83ba7abe5918450891e6e3ae1e1160f56c5264a0 100644
--- a/Framework/Algorithms/src/IntegrateByComponent.cpp
+++ b/Framework/Algorithms/src/IntegrateByComponent.cpp
@@ -85,19 +85,19 @@ void IntegrateByComponent::exec() {
           integratedWS->getInstrument();
 
       PARALLEL_FOR1(integratedWS)
-      for (unsigned long hist : hists) {
+      for (int i = 0; i < static_cast<int>(hists.size()); ++i) {
         PARALLEL_START_INTERUPT_REGION
 
         const std::set<detid_t> &detids =
-            integratedWS->getSpectrum(hist)
+            integratedWS->getSpectrum(hists[i])
                 ->getDetectorIDs(); // should be only one detector per spectrum
         if (instrument->isDetectorMasked(detids))
           continue;
         if (instrument->isMonitor(detids))
           continue;
 
-        const double yValue = integratedWS->readY(hist)[0];
-        const double eValue = integratedWS->readE(hist)[0];
+        const double yValue = integratedWS->readY(hists[i])[0];
+        const double eValue = integratedWS->readE(hists[i])[0];
 
         if (boost::math::isnan(yValue) || boost::math::isinf(yValue) ||
             boost::math::isnan(eValue) ||
diff --git a/Framework/MDAlgorithms/src/IntegrateMDHistoWorkspace.cpp b/Framework/MDAlgorithms/src/IntegrateMDHistoWorkspace.cpp
index 44c0a3995e2aff95cd71561b615c4deff87c35f5..2a865f66636f8749a03484187ade3b9824711e9c 100644
--- a/Framework/MDAlgorithms/src/IntegrateMDHistoWorkspace.cpp
+++ b/Framework/MDAlgorithms/src/IntegrateMDHistoWorkspace.cpp
@@ -355,11 +355,10 @@ void IntegrateMDHistoWorkspace::exec() {
     auto outIterators = outWS->createIterators(nThreads, NULL);
 
     PARALLEL_FOR_NO_WSP_CHECK()
-    for (auto &i : outIterators) {
-
+    for (int i = 0; i < int(outIterators.size()); ++i) {
       PARALLEL_START_INTERUPT_REGION
       boost::scoped_ptr<MDHistoWorkspaceIterator> outIterator(
-          dynamic_cast<MDHistoWorkspaceIterator *>(i));
+          dynamic_cast<MDHistoWorkspaceIterator *>(outIterators[i]));
 
       if (!outIterator) {
         throw std::logic_error(