diff --git a/Core/Samples/inc/ParticleDistribution.h b/Core/Samples/inc/ParticleDistribution.h
index a4d829e689ff97e4048dd799bb93d89fefabea1e..ae41541cde73f81c6e5170d2b3557e7cfccd73e3 100644
--- a/Core/Samples/inc/ParticleDistribution.h
+++ b/Core/Samples/inc/ParticleDistribution.h
@@ -27,7 +27,7 @@ class ParticleInfo;
 //! @ingroup samples
 //! @brief A particle with a form factor and refractive index
 
-class BA_CORE_API_ ParticleDistribution : public IParticle
+class BA_CORE_API_ ParticleDistribution : public IAbstractParticle
 {
 public:
     ParticleDistribution(const IParticle &prototype, const ParameterDistribution &par_distr);
@@ -59,14 +59,6 @@ public:
         return mP_particle->getAmbientMaterial();
     }
 
-    //! Should not be called for objects of this class:
-    //! The object should spawn particles that will create the
-    //! required form factors
-    virtual IFormFactor *createTransformedFormFactor(complex_t wavevector_scattering_factor,
-                                                     const IRotation* p_rotation,
-                                                     kvector_t translation) const;
-
-
     //! Initializes list of new particles generated according to a distribution
     virtual void generateParticleInfos(std::vector<const IParticle*>& particle_vector,
                                   std::vector<double>& abundance_vector,
@@ -90,9 +82,6 @@ public:
     }
 
 private:
-    //! Checks if particle's type is suitable for adding
-    void checkParticleType(const IParticle& p_particle);
-
     boost::scoped_ptr<IParticle> mP_particle;
     ParameterDistribution m_par_distribution;
 };
diff --git a/Core/Samples/src/ParticleDistribution.cpp b/Core/Samples/src/ParticleDistribution.cpp
index 2b42092a10b331426bd54e0745285751bcf85d75..70b9e38a5aea8b126baac315782b9f2c82d16fa4 100644
--- a/Core/Samples/src/ParticleDistribution.cpp
+++ b/Core/Samples/src/ParticleDistribution.cpp
@@ -23,10 +23,6 @@ ParticleDistribution::ParticleDistribution(const IParticle &prototype,
     : m_par_distribution(par_distr)
 {
     setName("ParticleDistribution");
-    registerParameter("position_x", &m_position[0]);
-    registerParameter("position_y", &m_position[1]);
-    registerParameter("position_z", &m_position[2]);
-    checkParticleType(prototype);
     mP_particle.reset(prototype.clone());
     registerChild(mP_particle.get());
 }
@@ -44,14 +40,6 @@ ParticleDistribution *ParticleDistribution::cloneInvertB() const
                                               "cloneInvertB: should never be called");
 }
 
-IFormFactor *ParticleDistribution::createTransformedFormFactor(complex_t, const IRotation *,
-                                                               kvector_t) const
-{
-    throw Exceptions::NotImplementedException(
-        "ParticleDistribution::"
-        "createTransformedFormFactor: should never be called");
-}
-
 void ParticleDistribution::generateParticleInfos(std::vector<const IParticle*> &particle_vector,
                                             std::vector<double> &abundance_vector, double abundance) const
 {
@@ -110,12 +98,3 @@ void ParticleDistribution::generateParticleInfos(std::vector<const IParticle*> &
         abundance_vector.push_back(particle_abundance);
     }
 }
-
-void ParticleDistribution::checkParticleType(const IParticle &p_particle)
-{
-    const ParticleDistribution *p_distr = dynamic_cast<const ParticleDistribution*>(&p_particle);
-    if (p_distr) {
-        throw Exceptions::ClassInitializationException("ParticleDistribution::checkParticleType: "
-                                                       "cannot add ParticleDistribution!");
-    }
-}