diff --git a/Framework/WorkflowAlgorithms/src/AlignAndFocusPowder.cpp b/Framework/WorkflowAlgorithms/src/AlignAndFocusPowder.cpp
index 9e241f7d9a1f576db1b92013f5d3e5ab965e5f19..b7e5b0266c32122158a902374cf14e9844477d71 100644
--- a/Framework/WorkflowAlgorithms/src/AlignAndFocusPowder.cpp
+++ b/Framework/WorkflowAlgorithms/src/AlignAndFocusPowder.cpp
@@ -327,8 +327,12 @@ void AlignAndFocusPowder::exec() {
     if (m_outputW != m_inputW) {
       // out-of-place: clone the input EventWorkspace
       m_outputEW = m_inputEW->clone();
+      m_outputW = boost::dynamic_pointer_cast<MatrixWorkspace>(m_outputEW);
+    }
+    else{
+      // in-place
+      m_outputEW = boost::dynamic_pointer_cast<EventWorkspace>(m_outputW);
     }
-    m_outputW = boost::dynamic_pointer_cast<EventWorkspace>(m_outputEW);
   } else {
     // workspace2D
     if (m_outputW != m_inputW) {