diff --git a/Code/Mantid/Framework/Algorithms/src/MultipleScatteringAbsorption.cpp b/Code/Mantid/Framework/Algorithms/src/MultipleScatteringAbsorption.cpp
index e4570e7cc9999f071ce44600cd64ce0b284f1e7a..4bc3c97bed28844eb7f1e7059e01c4f7593b0518 100644
--- a/Code/Mantid/Framework/Algorithms/src/MultipleScatteringAbsorption.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/MultipleScatteringAbsorption.cpp
@@ -111,7 +111,7 @@ void MultipleScatteringAbsorption::exec()
     MantidVec tof_vec = in_WS->readX(index);
     MantidVec y_vec   = in_WS->readY(index);
 
-    apply_msa_correction( total_path, tth_rad, radius,
+    if ( !det->isMasked() ) apply_msa_correction( total_path, tth_rad, radius,
                           coeff1, coeff2, coeff3,
                           tof_vec, y_vec);
 
diff --git a/Code/Mantid/Framework/DataHandling/src/SaveGSS.cpp b/Code/Mantid/Framework/DataHandling/src/SaveGSS.cpp
index 106060da21e952ebd79d259bb1448a1d5b6f45ba..672d5b129f57338d425b0b6169d470d5e3da62bd 100644
--- a/Code/Mantid/Framework/DataHandling/src/SaveGSS.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/SaveGSS.cpp
@@ -125,6 +125,8 @@ void SaveGSS::exec()
   double l1, l2, tth;
   for (int i=0;i<nHist;i++)
   {
+    Geometry::IDetector_const_sptr det = inputWS->getDetector(i);
+    if ( det->isMasked() ) break; 
     getFocusedPos(inputWS, i, l1, l2, tth);
     if (!split && i==0) // Assign only one file
     {