diff --git a/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroup.cpp b/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroup.cpp
index cf43e745bbb608fce4de68f8fd830865805fab9a..a6b6e747bd9e51e2240d268f2d2bf00960f4e6cc 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroup.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroup.cpp
@@ -47,6 +47,7 @@ namespace //<unnamed>
 
 void export_SpaceGroup()
 {
+  register_ptr_to_python<boost::shared_ptr<SpaceGroup> >();
   register_ptr_to_python<boost::shared_ptr<const SpaceGroup> >();
 
   class_<SpaceGroup, boost::noncopyable, bases<Group> >("SpaceGroup", no_init)
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroupFactory.cpp b/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroupFactory.cpp
index 004771bb1fbceab85a0d434d7237c4a4368f1087..0f906422a0f69a1d79769f36b661ce17fd57242e 100644
--- a/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroupFactory.cpp
+++ b/Code/Mantid/Framework/PythonInterface/mantid/geometry/src/Exports/SpaceGroupFactory.cpp
@@ -30,9 +30,10 @@ namespace
         return self.isSubscribed(number);
     }
 
-    SpaceGroup_const_sptr createSpaceGroup(SpaceGroupFactoryImpl &self, const std::string &symbol)
+    SpaceGroup_sptr createSpaceGroup(SpaceGroupFactoryImpl &self, const std::string &symbol)
     {
-        return self.createSpaceGroup(symbol);
+        SpaceGroup_const_sptr spaceGroup = self.createSpaceGroup(symbol);
+        return boost::const_pointer_cast<SpaceGroup>(spaceGroup);
     }
 
 }