diff --git a/Code/Mantid/Framework/MDAlgorithms/src/CutMD.cpp b/Code/Mantid/Framework/MDAlgorithms/src/CutMD.cpp
index e840d45e787f22e2fdd8e429f9165173ab8589d1..2af58d54c72c36fca0a248c1238e6bc32598a768 100644
--- a/Code/Mantid/Framework/MDAlgorithms/src/CutMD.cpp
+++ b/Code/Mantid/Framework/MDAlgorithms/src/CutMD.cpp
@@ -418,22 +418,22 @@ void CutMD::exec() {
 
   cutAlg->execute();
   Workspace_sptr sliceWS = cutAlg->getProperty("OutputWorkspace");
-  IMDEventWorkspace_sptr slice =
-      boost::dynamic_pointer_cast<IMDEventWorkspace>(sliceWS);
+  MultipleExperimentInfos_sptr sliceInfo =
+      boost::dynamic_pointer_cast<MultipleExperimentInfos>(sliceWS);
 
-  if (!slice)
+  if (!sliceInfo)
     throw std::runtime_error(
-        "Child algorithm did not produce IMDEventWorkspace");
+        "Could not extract experiment info from child's OutputWorkspace");
 
   // Attach projection matrix to output
-  if (slice->getNumExperimentInfo() > 0) {
-    ExperimentInfo_sptr info = slice->getExperimentInfo(0);
+  if (sliceInfo->getNumExperimentInfo() > 0) {
+    ExperimentInfo_sptr info = sliceInfo->getExperimentInfo(0);
     info->mutableRun().addProperty("W_MATRIX", projectionMatrix.getVector(),
                                    true);
   }
 
   // Done!
-  setProperty("OutputWorkspace", slice);
+  setProperty("OutputWorkspace", sliceWS);
 }
 
 } // namespace Mantid