diff --git a/src/timestepping.cc b/src/timestepping.cc
index 8d89ae768c2d4c791160b514170288d4ba3afc8f..bdadfefc7f9a3f8c99eafa36438b107b76a2da9e 100644
--- a/src/timestepping.cc
+++ b/src/timestepping.cc
@@ -94,11 +94,6 @@ void ImplicitEuler<VectorType, MatrixType, FunctionType, dim>::extractVelocity(
   velocity = v;
 }
 
-template <class VectorType, class MatrixType, class FunctionType, int dim>
-TimeSteppingScheme<VectorType, MatrixType, FunctionType, dim> *
-ImplicitEuler<VectorType, MatrixType, FunctionType, dim>::clone() {
-  return new ImplicitEuler<VectorType, MatrixType, FunctionType, dim>(*this);
-}
 template <class VectorType, class MatrixType, class FunctionType, int dim>
 Newmark<VectorType, MatrixType, FunctionType, dim>::Newmark(
     MatrixType const &_A, MatrixType const &_B, VectorType const &_u_initial,
@@ -204,11 +199,6 @@ void Newmark<VectorType, MatrixType, FunctionType, dim>::extractVelocity(
   velocity = v;
 }
 
-template <class VectorType, class MatrixType, class FunctionType, int dim>
-TimeSteppingScheme<VectorType, MatrixType, FunctionType, dim> *
-Newmark<VectorType, MatrixType, FunctionType, dim>::clone() {
-  return new Newmark<VectorType, MatrixType, FunctionType, dim>(*this);
-}
 template <class VectorType, class MatrixType, class FunctionType, int dim>
 EulerPair<VectorType, MatrixType, FunctionType, dim>::EulerPair(
     MatrixType const &_A, MatrixType const &_B, VectorType const &_u_initial,
@@ -304,10 +294,4 @@ void EulerPair<VectorType, MatrixType, FunctionType, dim>::extractVelocity(
   velocity = v;
 }
 
-template <class VectorType, class MatrixType, class FunctionType, int dim>
-TimeSteppingScheme<VectorType, MatrixType, FunctionType, dim> *
-EulerPair<VectorType, MatrixType, FunctionType, dim>::clone() {
-  return new EulerPair<VectorType, MatrixType, FunctionType, dim>(*this);
-}
-
 #include "timestepping_tmpl.cc"
diff --git a/src/timestepping.hh b/src/timestepping.hh
index 55ed34503b1a7ee197a8da5139d27d463cf8d765..efbcb416f234394fb1bb41f20c2c0ae9957a8d60 100644
--- a/src/timestepping.hh
+++ b/src/timestepping.hh
@@ -14,9 +14,6 @@ class TimeSteppingScheme {
   void virtual postProcess(VectorType const &problem_iterate) = 0;
   void virtual extractDisplacement(VectorType &displacement) const = 0;
   void virtual extractVelocity(VectorType &velocity) const = 0;
-
-  TimeSteppingScheme<VectorType, MatrixType, FunctionType, dim> virtual *
-  clone() = 0;
 };
 
 template <class VectorType, class MatrixType, class FunctionType, int dim>
@@ -35,9 +32,6 @@ class ImplicitEuler
   void virtual extractDisplacement(VectorType &) const override;
   void virtual extractVelocity(VectorType &) const override;
 
-  TimeSteppingScheme<VectorType, MatrixType, FunctionType, dim> virtual *clone()
-      override;
-
 private:
   MatrixType const &A;
   VectorType u;
@@ -70,9 +64,6 @@ class Newmark
   void virtual extractDisplacement(VectorType &) const override;
   void virtual extractVelocity(VectorType &) const override;
 
-  TimeSteppingScheme<VectorType, MatrixType, FunctionType, dim> virtual *clone()
-      override;
-
 private:
   MatrixType const &A;
   MatrixType const &B;
@@ -107,9 +98,6 @@ class EulerPair
   void virtual extractDisplacement(VectorType &) const override;
   void virtual extractVelocity(VectorType &) const override;
 
-  TimeSteppingScheme<VectorType, MatrixType, FunctionType, dim> virtual *clone()
-      override;
-
 private:
   MatrixType const &A;
   MatrixType const &B;