diff --git a/Code/Mantid/Framework/API/src/WorkspaceFactory.cpp b/Code/Mantid/Framework/API/src/WorkspaceFactory.cpp
index 3692a9cb8c8607f4d6e46fa7a303e773fbd88e82..951bdaa3df92d78cc219691c14bf50c58ab48f3d 100644
--- a/Code/Mantid/Framework/API/src/WorkspaceFactory.cpp
+++ b/Code/Mantid/Framework/API/src/WorkspaceFactory.cpp
@@ -110,7 +110,7 @@ void WorkspaceFactoryImpl::initializeFromParent(const MatrixWorkspace_const_sptr
     const int newAxisLength = child->getAxis(i)->length();
     const int oldAxisLength = parent->getAxis(i)->length();
 
-    if ( newAxisLength == oldAxisLength )
+    if ( !differentSize || newAxisLength == oldAxisLength )
     {
       // Need to delete the existing axis created in init above
       delete child->m_axes[i];