diff --git a/Sample/HardParticle/IFormFactorPolyhedron.cpp b/Sample/HardParticle/IFormFactorPolyhedron.cpp
index 912c26e60bfca1b65d13aafbefbc5fb521cba941..aa9899f507f85c8bf52429c4ccdf2ad74d66565a 100644
--- a/Sample/HardParticle/IFormFactorPolyhedron.cpp
+++ b/Sample/HardParticle/IFormFactorPolyhedron.cpp
@@ -72,5 +72,5 @@ Span IFormFactorPolyhedron::exec_spanZ(const IRotation* rotation) const
 complex_t IFormFactorPolyhedron::formfactor(C3 q) const
 {
     ASSERT(m_validated);
-    return exp_I(-m_z_bottom * q.z()) * pimpl->formfactor(q);
+    return pimpl->formfactor(q);
 }
diff --git a/Sample/HardParticle/IFormFactorPrism.cpp b/Sample/HardParticle/IFormFactorPrism.cpp
index 67c63db1deac2519a08767671d6c8084b6f600f5..0d962645a6b849681247133d579380ce562c30fd 100644
--- a/Sample/HardParticle/IFormFactorPrism.cpp
+++ b/Sample/HardParticle/IFormFactorPrism.cpp
@@ -34,11 +34,3 @@ void IFormFactorPrism::setPrism(bool symmetry_Ci, const std::vector<R3>& base_ve
         m_vertices.push_back(vertex + R3{0, 0, height()});
     }
 }
-
-//! Returns the form factor F(q) of this polyhedron, respecting the offset height/2.
-
-complex_t IFormFactorPrism::formfactor(C3 q) const
-{
-    ASSERT(m_validated);
-    return exp_I(height() / 2 * q.z()) * pimpl->formfactor(q);
-}
diff --git a/Sample/HardParticle/IFormFactorPrism.h b/Sample/HardParticle/IFormFactorPrism.h
index ddac0f08794cef64c83aacb0ad7028e249a566f2..f14c2625406fd509d5905d89fa2e34c545fe5754 100644
--- a/Sample/HardParticle/IFormFactorPrism.h
+++ b/Sample/HardParticle/IFormFactorPrism.h
@@ -27,8 +27,6 @@ public:
 
     virtual double height() const = 0;
 
-    complex_t formfactor(C3 q) const override;
-
 protected:
     void setPrism(bool symmetry_Ci, const std::vector<R3>& base_vertices) const;
 
diff --git a/Sample/HardParticle/PlatonicOctahedron.cpp b/Sample/HardParticle/PlatonicOctahedron.cpp
index 0a43521d70ae53f82866fb5fc6f68857d1c7f0fb..54f4a784fba8d9930671b5d483cb5393b29b0cd1 100644
--- a/Sample/HardParticle/PlatonicOctahedron.cpp
+++ b/Sample/HardParticle/PlatonicOctahedron.cpp
@@ -29,7 +29,6 @@ PlatonicOctahedron::PlatonicOctahedron(double edge)
 {
 }
 
-
 std::string PlatonicOctahedron::validate() const
 {
     if (m_edge <= 0)
diff --git a/auto/Wrap/libBornAgainSample.py b/auto/Wrap/libBornAgainSample.py
index 3763adbbe8119476e0032a03d061f4d7cc840b35..df2e0c25ed8b43febb9e273315939162f126276c 100644
--- a/auto/Wrap/libBornAgainSample.py
+++ b/auto/Wrap/libBornAgainSample.py
@@ -4732,10 +4732,6 @@ class IFormFactorPrism(IFormFactorPolyhedron):
         r"""height(IFormFactorPrism self) -> double"""
         return _libBornAgainSample.IFormFactorPrism_height(self)
 
-    def formfactor(self, q):
-        r"""formfactor(IFormFactorPrism self, C3 q) -> complex_t"""
-        return _libBornAgainSample.IFormFactorPrism_formfactor(self, q)
-
 # Register IFormFactorPrism in _libBornAgainSample:
 _libBornAgainSample.IFormFactorPrism_swigregister(IFormFactorPrism)
 class IProfileRipple(IFormFactor):
diff --git a/auto/Wrap/libBornAgainSample_wrap.cpp b/auto/Wrap/libBornAgainSample_wrap.cpp
index b7f85e14e9305d58ad10461c8cafed7ad1fdab93..c8294b9e3ccdd2846dcc6c2e768fbb260ed08ab1 100644
--- a/auto/Wrap/libBornAgainSample_wrap.cpp
+++ b/auto/Wrap/libBornAgainSample_wrap.cpp
@@ -48233,44 +48233,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IFormFactorPrism_formfactor(PyObject *self, PyObject *args) {
-  PyObject *resultobj = 0;
-  IFormFactorPrism *arg1 = (IFormFactorPrism *) 0 ;
-  C3 arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  complex_t result;
-  
-  if (!SWIG_Python_UnpackTuple(args, "IFormFactorPrism_formfactor", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPrism, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactorPrism_formfactor" "', argument " "1"" of type '" "IFormFactorPrism const *""'"); 
-  }
-  arg1 = reinterpret_cast< IFormFactorPrism * >(argp1);
-  {
-    res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Vec3T_std__complexT_double_t_t,  0  | 0);
-    if (!SWIG_IsOK(res2)) {
-      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormFactorPrism_formfactor" "', argument " "2"" of type '" "C3""'"); 
-    }  
-    if (!argp2) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormFactorPrism_formfactor" "', argument " "2"" of type '" "C3""'");
-    } else {
-      C3 * temp = reinterpret_cast< C3 * >(argp2);
-      arg2 = *temp;
-      if (SWIG_IsNewObj(res2)) delete temp;
-    }
-  }
-  result = ((IFormFactorPrism const *)arg1)->formfactor(arg2);
-  resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *IFormFactorPrism_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
   if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL;
@@ -62334,7 +62296,6 @@ static PyMethodDef SwigMethods[] = {
 	 { "IFormFactorPolyhedron_swigregister", IFormFactorPolyhedron_swigregister, METH_O, NULL},
 	 { "delete_IFormFactorPrism", _wrap_delete_IFormFactorPrism, METH_O, "delete_IFormFactorPrism(IFormFactorPrism self)"},
 	 { "IFormFactorPrism_height", _wrap_IFormFactorPrism_height, METH_O, "IFormFactorPrism_height(IFormFactorPrism self) -> double"},
-	 { "IFormFactorPrism_formfactor", _wrap_IFormFactorPrism_formfactor, METH_VARARGS, "IFormFactorPrism_formfactor(IFormFactorPrism self, C3 q) -> complex_t"},
 	 { "IFormFactorPrism_swigregister", IFormFactorPrism_swigregister, METH_O, NULL},
 	 { "IProfileRipple_length", _wrap_IProfileRipple_length, METH_O, "IProfileRipple_length(IProfileRipple self) -> double"},
 	 { "IProfileRipple_height", _wrap_IProfileRipple_height, METH_O, "IProfileRipple_height(IProfileRipple self) -> double"},