diff --git a/Resample/Particle/ReMesocrystal.cpp b/Resample/Particle/ReMesocrystal.cpp
index 688b5283737604985fbf125aa76e9a6878a9df2d..dd115242bf00ebbc1bd3a27a2c998a9e3bb5ce2a 100644
--- a/Resample/Particle/ReMesocrystal.cpp
+++ b/Resample/Particle/ReMesocrystal.cpp
@@ -15,9 +15,10 @@
 #include "Resample/Particle/ReMesocrystal.h"
 #include "Base/Math/Constants.h"
 #include "Base/Vector/WavevectorInfo.h"
+#include "Resample/Particle/ReParticle.h"
 
 ReMesocrystal::ReMesocrystal(const Lattice3D& lattice, const IReParticle& basis,
-                             const IReParticle& outer_shape, double position_variance)
+                             const ReParticle& outer_shape, double position_variance)
     : m_lattice(lattice)
     , m_basis(basis.clone())
     , m_outer_shape(outer_shape.clone())
@@ -32,6 +33,16 @@ ReMesocrystal::~ReMesocrystal()
     delete m_outer_shape;
 }
 
+double ReMesocrystal::volume() const
+{
+    return m_outer_shape->volume();
+}
+
+double ReMesocrystal::radialExtension() const
+{
+    return m_outer_shape->radialExtension();
+}
+
 double ReMesocrystal::bottomZ(const IRotation* rotation) const
 {
     return m_outer_shape->bottomZ(rotation);
diff --git a/Resample/Particle/ReMesocrystal.h b/Resample/Particle/ReMesocrystal.h
index 803c917bfaad897ab77a22dd67770470d76f00fe..89d102efd567abb67209f67475c974ffcdbdd3df 100644
--- a/Resample/Particle/ReMesocrystal.h
+++ b/Resample/Particle/ReMesocrystal.h
@@ -22,12 +22,14 @@
 #include "Resample/Particle/IReParticle.h"
 #include "Sample/Lattice/Lattice3D.h"
 
+class ReParticle;
+
 //! A reprocessed MesoCrystal.
 
 class ReMesocrystal : public IReParticle {
 public:
-    ReMesocrystal(const Lattice3D& lattice, const IReParticle& basis,
-                  const IReParticle& outer_shape, double position_variance = 0.0);
+    ReMesocrystal(const Lattice3D& lattice, const IReParticle& basis, const ReParticle& outer_shape,
+                  double position_variance = 0.0);
     ~ReMesocrystal() override;
 
     ReMesocrystal* clone() const override
@@ -40,8 +42,8 @@ public:
         m_basis->setAmbientMaterial(material);
     }
 
-    double volume() const override { return m_outer_shape->volume(); }
-    double radialExtension() const override { return m_outer_shape->radialExtension(); }
+    double volume() const override;
+    double radialExtension() const override;
 
     double bottomZ(const IRotation* rotation) const override;
 
@@ -58,7 +60,7 @@ private:
 
     Lattice3D m_lattice;
     IReParticle* m_basis;
-    IReParticle* m_outer_shape; //!< The outer shape of this mesocrystal
+    ReParticle* m_outer_shape; //!< The outer shape of this mesocrystal
     double m_position_variance;
     double m_max_rec_length;
 };
diff --git a/auto/Wrap/doxygenResample.i b/auto/Wrap/doxygenResample.i
index 4f48ae52ea718bdcc0b759e4021c5454b284b82f..216cd1b5932f1afca01214a57190d5b1470a421a 100644
--- a/auto/Wrap/doxygenResample.i
+++ b/auto/Wrap/doxygenResample.i
@@ -567,7 +567,7 @@ A reprocessed MesoCrystal.
 C++ includes: ReMesocrystal.h
 ";
 
-%feature("docstring")  ReMesocrystal::ReMesocrystal "ReMesocrystal::ReMesocrystal(const Lattice3D &lattice, const IReParticle &basis, const IReParticle &outer_shape, double position_variance=0.0)
+%feature("docstring")  ReMesocrystal::ReMesocrystal "ReMesocrystal::ReMesocrystal(const Lattice3D &lattice, const IReParticle &basis, const ReParticle &outer_shape, double position_variance=0.0)
 ";
 
 %feature("docstring")  ReMesocrystal::~ReMesocrystal "ReMesocrystal::~ReMesocrystal() override