diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FilterByLogValue.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FilterByLogValue.h
index 4dc72e2e4135c97d5d4aedb43233c52cf83e79ff..bfcd0ac7eea60f54287613de0c381442f542c362 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FilterByLogValue.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/FilterByLogValue.h
@@ -21,7 +21,6 @@ namespace Algorithms
 
 /** Filters events in an EventWorkspace using values in a SampleLog.
 
-    @author Janik Zikovsky, SNS
     @date September 15th, 2010
 
     Copyright © 2010 ISIS Rutherford Appleton Laboratory & NScD Oak Ridge National Laboratory
diff --git a/Code/Mantid/MantidPlot/CMakeLists.txt b/Code/Mantid/MantidPlot/CMakeLists.txt
index a9ef69703321f50ad19303a329510bb793ba1888..f50c38bc51443f4aafae7a67dc668fa3b07959c0 100644
--- a/Code/Mantid/MantidPlot/CMakeLists.txt
+++ b/Code/Mantid/MantidPlot/CMakeLists.txt
@@ -737,6 +737,7 @@ include_directories ( src )
 include_directories ( src/lib/include )
 include_directories ( src/lib/3rdparty/qtcolorpicker/src )
 include_directories ( ../MantidQt/SliceViewer/inc )
+include_directories ( ../MantidQt/Factory/inc )
 
 
 ###########################################################################
@@ -764,7 +765,8 @@ add_executable ( MantidPlot ${WIN_CONSOLE} MACOSX_BUNDLE ${ALL_SRC} src/main.cpp
 
 # Library dependencies
 target_link_libraries ( MantidPlot 
-                        ${CORE_MANTIDLIBS} MantidQtAPI MantidWidgets MantidQtSliceViewer
+                        ${CORE_MANTIDLIBS}
+                        MantidQtAPI MantidWidgets MantidQtSliceViewer MantidQtFactory
                         QtPropertyBrowser ${QT_LIBRARIES} 
                         ${QWT_LIBRARIES} ${QWTPLOT3D_LIBRARIES}
                         ${QSCINTILLA_LIBRARIES}
diff --git a/Code/Mantid/MantidPlot/src/Mantid/MantidApplication.cpp b/Code/Mantid/MantidPlot/src/Mantid/MantidApplication.cpp
index 9e238239c80bcf21ae7b71b20aa86eb8b52cdd7f..c069118b60073d90b236625dd421c982e92f3483 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/MantidApplication.cpp
+++ b/Code/Mantid/MantidPlot/src/Mantid/MantidApplication.cpp
@@ -21,7 +21,7 @@ bool MantidApplication::notify( QObject * receiver, QEvent * event )
   bool res = false;
   try
   {
-    //std::cout << "MantidApplication::notify( event.type() == " << event->type() << ")\n";
+    //std::cout << "MantidApplication::notify( receiver " << receiver->objectName().toStdString() << ", event.type() == " << event->type() << ")\n";
     res = QApplication::notify(receiver,event);
   }
   catch(std::exception& e)
diff --git a/Code/Mantid/MantidPlot/src/Mantid/MantidUI.cpp b/Code/Mantid/MantidPlot/src/Mantid/MantidUI.cpp
index 4506f7a58e5dd326e2736f417ea9084cf0b86151..21f7862b538cb552c81e555abc498c2d4984e787 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/MantidUI.cpp
+++ b/Code/Mantid/MantidPlot/src/Mantid/MantidUI.cpp
@@ -59,12 +59,14 @@
 #include <sstream>
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidQtSliceViewer/SliceViewerWindow.h"
+#include "MantidQtFactory/WidgetFactory.h"
 
 
 using namespace std;
 
 using namespace Mantid::API;
 using Mantid::Kernel::DateAndTime;
+using MantidQt::SliceViewer::SliceViewerWindow;
 namespace MantidException = Mantid::Kernel::Exception;
 
 
@@ -661,11 +663,13 @@ void MantidUI::showSliceViewer()
   if (mdws)
   {
     // Create the slice viewer window
-	// Creates it with NULL parent so that it does not stay on top of the main window on Windows.
-    SliceViewerWindow * w = new SliceViewerWindow(wsName, NULL, "");
-	// Connect the MantidPlot close() event with the the window's close().
-	QObject::connect(appWindow(), SIGNAL(destroyed()), w, SLOT(close()));
-	// Pop up the window
+    SliceViewerWindow * w = WidgetFactory::Instance().
+        createSliceViewerWindow(wsName, "");
+
+    // Connect the MantidPlot close() event with the the window's close().
+    QObject::connect(appWindow(), SIGNAL(destroyed()), w, SLOT(close()));
+
+    // Pop up the window
     w->show();
     // And add it
     //appWindow()->d_workspace->addSubWindow(w);
diff --git a/Code/Mantid/MantidQt/CMakeLists.txt b/Code/Mantid/MantidQt/CMakeLists.txt
index 96a3ff3e21c9a065287cfa7946056d43fb95b779..53d397baa86783015517d93c8952b7435a2b9737 100644
--- a/Code/Mantid/MantidQt/CMakeLists.txt
+++ b/Code/Mantid/MantidQt/CMakeLists.txt
@@ -10,6 +10,7 @@ add_subdirectory ( CustomDialogs )
 add_subdirectory ( CustomInterfaces )
 add_subdirectory ( DesignerPlugins )
 add_subdirectory ( SliceViewer )
+add_subdirectory ( Factory )
 
 ###########################################################################
 # Add a custom target to build all of the MantidQt packages
diff --git a/Code/Mantid/MantidQt/Factory/CMakeLists.txt b/Code/Mantid/MantidQt/Factory/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0d030b046caed461181005d0d05ce7f0388639e0
--- /dev/null
+++ b/Code/Mantid/MantidQt/Factory/CMakeLists.txt
@@ -0,0 +1,50 @@
+set ( SRC_FILES
+	src/WidgetFactory.cpp
+)
+
+set ( INC_FILES
+	inc/MantidQtFactory/WidgetFactory.h
+)
+
+set ( MOC_FILES 
+)
+
+set ( UI_FILES 
+)
+
+set ( TEST_FILES
+	test/WidgetFactoryTest.h
+)
+
+include_directories ( inc )
+include_directories ( ../SliceViewer/inc )
+
+###########################################################################
+# Main Library Target
+###########################################################################
+
+qt4_wrap_cpp ( MOCCED_FILES ${MOC_FILES} )
+
+set ( ALL_SRC ${SRC_FILES} ${MOCCED_FILES} )
+
+qt4_wrap_ui ( UI_HDRS ${UI_FILES} ) 
+
+include_directories ( ${CMAKE_CURRENT_BINARY_DIR} )
+include_directories ( ${CMAKE_CURRENT_BINARY_DIR}/../SliceViewer )
+
+# For Windows:
+add_definitions ( -DIN_MANTIDQT_FACTORY )
+
+# This creates the target library
+add_library ( MantidQtFactory ${ALL_SRC} ${INC_FILES} ${UI_HDRS} )
+
+# ... and links to other required libs
+target_link_libraries ( MantidQtFactory MantidQtAPI QtPropertyBrowser MantidQtSliceViewer ${QT_LIBRARIES} ${QWT_LIBRARIES} )
+
+###########################################################################
+# Installation settings
+###########################################################################
+
+install ( TARGETS MantidQtFactory DESTINATION ${LIB_DIR} )
+
+
diff --git a/Code/Mantid/MantidQt/Factory/inc/MantidQtFactory/DllOption.h b/Code/Mantid/MantidQt/Factory/inc/MantidQtFactory/DllOption.h
new file mode 100644
index 0000000000000000000000000000000000000000..c6acd7e941ae3500a0b19db42b1fd3f6dbed468e
--- /dev/null
+++ b/Code/Mantid/MantidQt/Factory/inc/MantidQtFactory/DllOption.h
@@ -0,0 +1,12 @@
+#ifndef MANTIDQT_FACTORY_DLLOPTION_H_
+#define MANTIDQT_FACTORY_DLLOPTION_H_
+
+#include "MantidKernel/System.h"
+
+#ifdef IN_MANTIDQT_FACTORY
+#define EXPORT_OPT_MANTIDQT_FACTORY DLLExport
+#else
+#define EXPORT_OPT_MANTIDQT_FACTORY DLLImport
+#endif /* IN_MANTIDQT_API */
+
+#endif //MANTIDQT_FACTORY_DLLOPTION_H_
diff --git a/Code/Mantid/MantidQt/Factory/inc/MantidQtFactory/WidgetFactory.h b/Code/Mantid/MantidQt/Factory/inc/MantidQtFactory/WidgetFactory.h
new file mode 100644
index 0000000000000000000000000000000000000000..7b9d98960cd601003f10154bbbec40ba40db7945
--- /dev/null
+++ b/Code/Mantid/MantidQt/Factory/inc/MantidQtFactory/WidgetFactory.h
@@ -0,0 +1,63 @@
+#ifndef MANTID_FACTORY_WIDGETFACTORY_H_
+#define MANTID_FACTORY_WIDGETFACTORY_H_
+
+#include "DllOption.h"
+#include "MantidKernel/System.h"
+#include "MantidKernel/SingletonHolder.h"
+#include "MantidQtSliceViewer/SliceViewer.h"
+#include "MantidQtSliceViewer/SliceViewerWindow.h"
+#include "qapplication.h"
+
+namespace MantidQt
+{
+namespace Factory
+{
+
+  /** Factory class that handles the creation
+   * of MantidQt widgets such as the SliceViewer.
+   * This allows both C++ and Python to create these widgets
+   * and both to handle them in a uniform way.
+    
+    @date 2011-12-15
+
+    Copyright &copy; 2011 ISIS Rutherford Appleton Laboratory & NScD Oak Ridge National Laboratory
+
+    This file is part of Mantid.
+
+    Mantid is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3 of the License, or
+    (at your option) any later version.
+
+    Mantid is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+    File change history is stored at: <https://svn.mantidproject.org/mantid/trunk/Code/Mantid>
+    Code Documentation is available at: <http://doxygen.mantidproject.org>
+  */
+  class EXPORT_OPT_MANTIDQT_FACTORY WidgetFactoryImpl
+  {
+  public:
+    WidgetFactoryImpl();
+    virtual ~WidgetFactoryImpl();
+    
+    MantidQt::SliceViewer::SliceViewerWindow * createSliceViewerWindow(const QString& wsName, const QString& label);
+
+  };
+
+
+
+} // namespace Factory
+} // namespace MantidQt
+
+/// Explicitely declare the WidgetFactory singleton
+template class EXPORT_OPT_MANTIDQT_FACTORY Mantid::Kernel::SingletonHolder<MantidQt::Factory::WidgetFactoryImpl>;
+typedef EXPORT_OPT_MANTIDQT_FACTORY Mantid::Kernel::SingletonHolder<MantidQt::Factory::WidgetFactoryImpl> WidgetFactory;
+
+
+#endif  /* MANTID_FACTORY_WIDGETFACTORY_H_ */
diff --git a/Code/Mantid/MantidQt/Factory/src/WidgetFactory.cpp b/Code/Mantid/MantidQt/Factory/src/WidgetFactory.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..ed3956fe78831a78d0624dcb1ca03928751b4b59
--- /dev/null
+++ b/Code/Mantid/MantidQt/Factory/src/WidgetFactory.cpp
@@ -0,0 +1,48 @@
+#include "MantidQtFactory/WidgetFactory.h"
+#include "MantidKernel/System.h"
+#include "MantidQtSliceViewer/SliceViewerWindow.h"
+
+using namespace MantidQt::SliceViewer;
+
+namespace MantidQt
+{
+namespace Factory
+{
+
+
+  //----------------------------------------------------------------------------------------------
+  /** Constructor
+   */
+  WidgetFactoryImpl::WidgetFactoryImpl()
+  {
+  }
+    
+  //----------------------------------------------------------------------------------------------
+  /** Destructor
+   */
+  WidgetFactoryImpl::~WidgetFactoryImpl()
+  {
+  }
+
+
+  //----------------------------------------------------------------------------------------------
+  /** Create an instance of a SliceViewerWindow:
+   * a separate window containing a SliceViewer widget, to do 2D
+   * views of multidimensional workspace, as well as a
+   * LineViewer widget, to do 1D lines through the 2D slices.
+   *
+   * @param wsName :: name of the workspace to show
+   * @param app :: QApplication parent
+   * @param label :: label for the window title
+   * @return the created SliceViewerWindow *
+   */
+  MantidQt::SliceViewer::SliceViewerWindow * WidgetFactoryImpl::createSliceViewerWindow(const QString& wsName, const QString& label)
+  {
+    SliceViewerWindow * window = new SliceViewerWindow(wsName, label);
+    //TODO: Save in a list
+    return window;
+  }
+
+
+} // namespace Mantid
+} // namespace Factory
diff --git a/Code/Mantid/MantidQt/Factory/test/WidgetFactoryTest.h b/Code/Mantid/MantidQt/Factory/test/WidgetFactoryTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..c1c0ba1a3b2cf56e972b3fb63b33bee18c07d904
--- /dev/null
+++ b/Code/Mantid/MantidQt/Factory/test/WidgetFactoryTest.h
@@ -0,0 +1,33 @@
+#ifndef MANTID_FACTORY_WIDGETFACTORYTEST_H_
+#define MANTID_FACTORY_WIDGETFACTORYTEST_H_
+
+#include <cxxtest/TestSuite.h>
+#include "MantidKernel/Timer.h"
+#include "MantidKernel/System.h"
+#include <iostream>
+#include <iomanip>
+
+#include "MantidFactory/WidgetFactory.h"
+
+using namespace Mantid;
+using namespace Mantid::Factory;
+using namespace Mantid::API;
+
+class WidgetFactoryTest : public CxxTest::TestSuite
+{
+public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static WidgetFactoryTest *createSuite() { return new WidgetFactoryTest(); }
+  static void destroySuite( WidgetFactoryTest *suite ) { delete suite; }
+
+
+  void test_Something()
+  {
+  }
+
+
+};
+
+
+#endif /* MANTID_FACTORY_WIDGETFACTORYTEST_H_ */
\ No newline at end of file
diff --git a/Code/Mantid/MantidQt/SliceViewer/CMakeLists.txt b/Code/Mantid/MantidQt/SliceViewer/CMakeLists.txt
index d526269d3fbed1bb8138d7fda7c595172781e3d6..0f75b16130d308880ebc7d1818c0ba27ab147c18 100644
--- a/Code/Mantid/MantidQt/SliceViewer/CMakeLists.txt
+++ b/Code/Mantid/MantidQt/SliceViewer/CMakeLists.txt
@@ -60,7 +60,6 @@ include_directories ( inc )
 include_directories ( ../../QtPropertyBrowser/src )
 
 
-
 ###########################################################################
 # Main Library Target
 ###########################################################################
diff --git a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/SliceViewerWindow.h b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/SliceViewerWindow.h
index 47a878b2dd66729de45f0b7ea7c8e7344917d52b..ce7062e5282283e1518e8be52a6e46128108eb37 100644
--- a/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/SliceViewerWindow.h
+++ b/Code/Mantid/MantidQt/SliceViewer/inc/MantidQtSliceViewer/SliceViewerWindow.h
@@ -13,6 +13,11 @@
 #include "DllOption.h"
 #include "MantidKernel/VMD.h"
 
+namespace MantidQt
+{
+namespace SliceViewer
+{
+
 
 /** A window that contains a SliceViewer and a LineViewer widget,
  * linked together.
@@ -25,7 +30,7 @@ class EXPORT_OPT_MANTIDQT_SLICEVIEWER SliceViewerWindow : public QMainWindow, pu
     Q_OBJECT
 
 public:
-  SliceViewerWindow(const QString& wsName, QWidget *app , const QString& label = QString() , Qt::WFlags f=0);
+  SliceViewerWindow(const QString& wsName, const QString& label = QString() , Qt::WFlags f=0);
   ~SliceViewerWindow();
   MantidQt::SliceViewer::SliceViewer * getSlicer() { return m_slicer; }
   MantidQt::SliceViewer::LineViewer * getLiner() { return m_liner; }
@@ -71,4 +76,9 @@ protected:
 
 };
 
+
+}//namespace SliceViewer
+}//namespace MantidQt
+
+
 #endif // SLICEVIEWERWINDOW_H
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/DimensionSliceWidget.cpp b/Code/Mantid/MantidQt/SliceViewer/src/DimensionSliceWidget.cpp
index 657ccbad009bfac2cbce19d690d67e4bd4f243ef..95c00cb8c5de7ab767633b966fe48b60b3ebdfa8 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/DimensionSliceWidget.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/DimensionSliceWidget.cpp
@@ -11,8 +11,9 @@ namespace SliceViewer
 
 DimensionSliceWidget::DimensionSliceWidget(QWidget *parent)
     : QWidget(parent),
-     m_dimIndex(0), m_shownDim(0),
-     m_slicePoint(0.0)
+      m_dim(),
+      m_dimIndex(0), m_shownDim(0),
+      m_slicePoint(0.0)
 {
   ui.setupUi(this);
 
@@ -155,6 +156,7 @@ void DimensionSliceWidget::setSlicePoint(double value)
  */
 void DimensionSliceWidget::setMinMax(double min, double max)
 {
+  if (!m_dim) return;
   ui.lblName->setText(QString::fromStdString(m_dim->getName()) );
   ui.lblUnits->setText(QString::fromStdString(m_dim->getUnits()) );
 
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/SliceViewer.cpp b/Code/Mantid/MantidQt/SliceViewer/src/SliceViewer.cpp
index 5aef21c66c066cb554b4d0351c8e96294cd098c0..a44c0d0f0046fff3da4b8a9a406e43b257848511 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/SliceViewer.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/SliceViewer.cpp
@@ -52,10 +52,15 @@ namespace SliceViewer
 /** Constructor */
 SliceViewer::SliceViewer(QWidget *parent)
     : QWidget(parent),
+      m_ws(), m_firstWorkspaceOpen(false),
+      m_dimensions(), m_data(NULL),
+      m_X(), m_Y(),
       m_dimX(0), m_dimY(1),
       m_logColor(false)
 {
+  //std::cout << "Starting setupUI. Parent is " << parent << "." << std::endl;
 	ui.setupUi(this);
+  //std::cout << "done setupUI. Parent is " << parent << "." << std::endl;
 
 	m_inf = std::numeric_limits<double>::infinity();
 
@@ -113,6 +118,7 @@ SliceViewer::SliceViewer(QWidget *parent)
   m_lineOverlay = new LineOverlay(m_plot);
   m_lineOverlay->setVisible(false);
 
+  //std::cout << "Done SliceViewer constructor" << std::endl;
 }
 
 //------------------------------------------------------------------------------------
@@ -296,19 +302,27 @@ void SliceViewer::showControls(bool visible)
 /** Add (as needed) and update DimensionSliceWidget's. */
 void SliceViewer::updateDimensionSliceWidgets()
 {
+  //std::cout << "Workspace has " << m_ws->getNumDims() << " dimensions " << std::endl;
   // Create all necessary widgets
   if (m_dimWidgets.size() < m_ws->getNumDims())
   {
     for (size_t d=m_dimWidgets.size(); d<m_ws->getNumDims(); d++)
     {
-      DimensionSliceWidget * widget = new DimensionSliceWidget(this);
+      //std::cout << "Creating DimensionSliceWidget at d "<< d << " with parent " << this << std::endl;
+      DimensionSliceWidget * widget = new DimensionSliceWidget(this /*TODO set to this */);
+
+      //std::cout << "Widget is at "<< widget << std::endl;
+
       ui.verticalLayoutControls->insertWidget(int(d), widget);
-      m_dimWidgets.push_back(widget);
-      // Slot when t
+      //std::cout << "Widget inserted into layout " << std::endl;
+      // Slots for changes on the dimension widget
       QObject::connect(widget, SIGNAL(changedShownDim(int,int,int)),
                        this, SLOT(changedShownDim(int,int,int)));
       QObject::connect(widget, SIGNAL(changedSlicePoint(int,double)),
                        this, SLOT(updateDisplaySlot(int,double)));
+      //std::cout << "Signals connected." << std::endl;
+      // Save in this list
+      m_dimWidgets.push_back(widget);
     }
   }
   // Hide unnecessary ones
@@ -890,7 +904,6 @@ void SliceViewer::updateDisplay(bool resetAxes)
 
   // Send out a signal
   emit changedSlicePoint(m_slicePoint);
-//  std::cout << m_plot->sizeHint().width() << " width\n";
 }
 
 
diff --git a/Code/Mantid/MantidQt/SliceViewer/src/SliceViewerWindow.cpp b/Code/Mantid/MantidQt/SliceViewer/src/SliceViewerWindow.cpp
index 2727c3d100623ce41bcb94235ab54bce1c487445..b0ae0eb2210c3d8cd336d5470ddfd570c74648a8 100644
--- a/Code/Mantid/MantidQt/SliceViewer/src/SliceViewerWindow.cpp
+++ b/Code/Mantid/MantidQt/SliceViewer/src/SliceViewerWindow.cpp
@@ -15,13 +15,23 @@ using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace MantidQt::SliceViewer;
 
+namespace MantidQt
+{
+namespace SliceViewer
+{
 
-SliceViewerWindow::SliceViewerWindow(const QString& wsName, QWidget *app , const QString& label, Qt::WFlags f)
- : QMainWindow(app, f),
+/** SliceViewerWindow constructor.
+ * Creates it with NULL parent so that it does not stay on top of the main window on Windows.
+ *
+ * @param wsName :: name of the workspace being viewer
+ * @param label
+ * @param f
+ * @return
+ */
+SliceViewerWindow::SliceViewerWindow(const QString& wsName, const QString& label, Qt::WFlags f)
+ : QMainWindow(NULL, f),
    WorkspaceObserver()
 {
-  bool isMainWindow = dynamic_cast<QMainWindow*>(this);
-
   // Set the window icon
   QIcon icon;
   icon.addFile(QString::fromUtf8(":/SliceViewer/icons/SliceViewerWindow_icon.png"), QSize(), QIcon::Normal, QIcon::Off);
@@ -58,23 +68,11 @@ SliceViewerWindow::SliceViewerWindow(const QString& wsName, QWidget *app , const
   m_liner = new LineViewer(m_splitter);
   m_liner->setVisible(false);
 
-  if (!isMainWindow)
-    layout->addWidget(m_splitter);
-  else
-    this->setCentralWidget(m_splitter);
+  this->setCentralWidget(m_splitter);
 
   m_splitter->addWidget(m_slicer);
   m_splitter->addWidget(m_liner);
 
-  // For MdiSubWindow only
-  if (false)
-  {
-    // Connect closing signals
-    connect(this, SIGNAL(closedWindow(MdiSubWindow*)), app, SLOT(closeWindow(MdiSubWindow*)));
-    connect(this, SIGNAL(hiddenWindow(MdiSubWindow*)), app, SLOT(hideWindow(MdiSubWindow*)));
-    connect(this, SIGNAL(showContextMenu()), app, SLOT(showWindowContextMenu()));
-  }
-
   // Connect WorkspaceObserver signals
   connect(this,SIGNAL(needToClose()),this,SLOT(closeWindow()));
   connect(this,SIGNAL(needToUpdate()),this,SLOT(updateWorkspace()));
@@ -274,3 +272,6 @@ void SliceViewerWindow::afterReplaceHandle(const std::string& wsName,const boost
     emit needToUpdate();
   }
 }
+
+}//namespace SliceViewer
+}//namespace MantidQt
diff --git a/Code/Mantid/MantidQt/SliceViewer/test/SliceViewerPythonInterfaceTest.py b/Code/Mantid/MantidQt/SliceViewer/test/SliceViewerPythonInterfaceTest.py
index 289a1d38852bbb22644040682a1ac9396b8ff1b2..74aef136b90c64484346edf0c8788a1700f12e95 100644
--- a/Code/Mantid/MantidQt/SliceViewer/test/SliceViewerPythonInterfaceTest.py
+++ b/Code/Mantid/MantidQt/SliceViewer/test/SliceViewerPythonInterfaceTest.py
@@ -37,7 +37,9 @@ class SliceViewerPythonInterfaceTest(unittest.TestCase):
     
     def setUp(self):
         """ Set up and create a SliceViewer widget """
+        sys.stderr.write("Starting setUp\n")
         self.sv = mantidqtpython.MantidQt.SliceViewer.SliceViewer()
+        #self.sv.show()
         # Open the default workspace for testing
         self.sv.setWorkspace('uniform')
         pass
@@ -47,10 +49,12 @@ class SliceViewerPythonInterfaceTest(unittest.TestCase):
         self.sv.close()
     
     def test_setWorkspace(self):
+        sys.stderr.write("Starting test_setWorkspace\n")
         sv = self.sv
         assert (sv is not None) 
     
     def test_setWorkspace_MDEventWorkspace(self):
+        sys.stderr.write("Starting test_setWorkspace_MDEventWorkspace\n")
         sv = self.sv
         sv.setWorkspace('mdw')
     
diff --git a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/MultisliceView.cpp b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/MultisliceView.cpp
index 31dcb1400b67e0dead6cacb2c4e1afaab19a28a8..361172f723325400b1c4fd0b35918149a32b0985 100644
--- a/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/MultisliceView.cpp
+++ b/Code/Mantid/Vates/VatesSimpleGui/ViewWidgets/src/MultisliceView.cpp
@@ -39,6 +39,7 @@
 #include <iostream>
 
 using namespace Mantid::Geometry;
+using namespace MantidQt::SliceViewer;
 
 namespace Mantid
 {
@@ -617,7 +618,8 @@ void MultiSliceView::showCutInSliceViewer(const QString &name)
   //std::cout << rks.createXMLString() << std::endl;
   QString titleAddition = " "+name;
 
-  SliceViewerWindow *w = new SliceViewerWindow(wsName, this, titleAddition);
+  // TODO: Use the WidgetFactory
+  SliceViewerWindow *w = new MantidQt::SliceViewer::SliceViewerWindow(wsName, titleAddition);
   w->show();
 }