diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index 7e494304d856e2e78076a676fd6af13db955e186..3dd8bf6ac0aea2efc53a129e331a86dde113de1b 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -287,7 +287,7 @@ int main(int argc, char *argv[]) {
     writer.writeInfo(alpha_initial, u_initial, v_initial);
 
     MyVTKWriter<typename MyAssembler::VertexBasis,
-                typename MyAssembler::CellBasis>
+                typename MyAssembler::CellBasis> const
     vtkWriter(myAssembler.cellBasis, myAssembler.vertexBasis, "obs");
 
     // Set up TNNMG solver
@@ -442,7 +442,7 @@ int main(int argc, char *argv[]) {
         ScalarVector stress;
         myAssembler.assembleVonMisesStress(body.getYoungModulus(),
                                            body.getPoissonRatio(), u, stress);
-        vtkWriter.write(u, v, alpha, stress);
+        vtkWriter.write(timeStep - 1, u, v, alpha, stress);
       }
     }
     iterationWriter.close();
diff --git a/src/vtk.cc b/src/vtk.cc
index f1a1e6dfaf227ca55d614c6238a4e86e576d52ee..0155384e070b215d12aa28de23e842c2715cf53c 100644
--- a/src/vtk.cc
+++ b/src/vtk.cc
@@ -12,17 +12,13 @@ template <class VertexBasis, class CellBasis>
 MyVTKWriter<VertexBasis, CellBasis>::MyVTKWriter(
     CellBasis const &_cellBasis, VertexBasis const &_vertexBasis,
     std::string _prefix)
-    : cellBasis(_cellBasis),
-      vertexBasis(_vertexBasis),
-      prefix(_prefix),
-      counter(0) {}
+    : cellBasis(_cellBasis), vertexBasis(_vertexBasis), prefix(_prefix) {}
 
 template <class VertexBasis, class CellBasis>
 template <class Vector, class ScalarVector>
-void MyVTKWriter<VertexBasis, CellBasis>::write(Vector const &u,
-                                                Vector const &v,
-                                                ScalarVector const &alpha,
-                                                ScalarVector const &stress) {
+void MyVTKWriter<VertexBasis, CellBasis>::write(
+    size_t record, Vector const &u, Vector const &v, ScalarVector const &alpha,
+    ScalarVector const &stress) const {
   Dune::VTKWriter<typename VertexBasis::GridView> writer(
       vertexBasis.getGridView());
 
@@ -46,7 +42,7 @@ void MyVTKWriter<VertexBasis, CellBasis>::write(Vector const &u,
           cellBasis, stress, "stress");
   writer.addCellData(stressPointer);
 
-  std::string const filename = prefix + std::to_string(counter++);
+  std::string const filename = prefix + std::to_string(record);
   writer.write(filename.c_str());
 }
 
diff --git a/src/vtk.hh b/src/vtk.hh
index a5b62db35604bfc91db7b9e0ba333a3ed2430bb0..ffa89983fed1916c9aaba6cd6a823541801683af 100644
--- a/src/vtk.hh
+++ b/src/vtk.hh
@@ -8,15 +8,13 @@ template <class VertexBasis, class CellBasis> class MyVTKWriter {
   VertexBasis const &vertexBasis;
   std::string const prefix;
 
-  size_t counter;
-
 public:
   MyVTKWriter(CellBasis const &cellBasis, VertexBasis const &vertexBasis,
               std::string prefix);
 
   template <class Vector, class ScalarVector>
-  void write(Vector const &u, Vector const &v, ScalarVector const &alpha,
-             ScalarVector const &stress);
+  void write(size_t record, Vector const &u, Vector const &v,
+             ScalarVector const &alpha, ScalarVector const &stress) const;
 };
 
 #endif
diff --git a/src/vtk_tmpl.cc b/src/vtk_tmpl.cc
index 027d42f977807e2259f689f9164814802bceed6a..2b1930040ce0ea55c49d31e3e85ac3f76a86ff74 100644
--- a/src/vtk_tmpl.cc
+++ b/src/vtk_tmpl.cc
@@ -14,5 +14,5 @@ using P1Basis = P1NodalBasis<GridView, double>;
 template class MyVTKWriter<P1Basis, MyP0Basis>;
 
 template void MyVTKWriter<P1Basis, MyP0Basis>::write<Vector, ScalarVector>(
-    Vector const &u, Vector const &v, ScalarVector const &alpha,
-    ScalarVector const &stress);
+    size_t record, Vector const &u, Vector const &v, ScalarVector const &alpha,
+    ScalarVector const &stress) const;