diff --git a/src/linear-elasticity.cc b/src/linear-elasticity.cc
index 43c7243a0718304a1670a90bdccd048e8c89c011..38937222c2852455a96ce03c956755cdcce48e90 100644
--- a/src/linear-elasticity.cc
+++ b/src/linear-elasticity.cc
@@ -5,12 +5,13 @@
 #include <dune/common/parametertreeparser.hh>
 
 #include <dune/grid/uggrid.hh>
-#include <dune/grid/io/file/amirameshwriter.hh>
 #include <dune/grid/io/file/amirameshreader.hh>
+#include <dune/grid/io/file/vtk.hh>
 
 #include <dune/istl/io.hh>
 
 #include <dune/functions/functionspacebases/lagrangebasis.hh>
+#include <dune/functions/gridfunctions/discreteglobalbasisfunction.hh>
 
 #include <dune/fufem/functiontools/gridfunctionadaptor.hh>
 #include <dune/fufem/functions/coarsegridfunctionwrapper.hh>
@@ -130,8 +131,13 @@ int main (int argc, char *argv[]) try
     for (int i=0; i<minLevel; i++)
         grid->globalRefine(1);
 
-    // initial solution
-    VectorType x(grid->size(dim));
+    using P1Basis = Dune::Functions::LagrangeBasis<GridView,1>;
+    P1Basis p1Basis(grid->leafGridView());
+    using FufemP1Basis = DuneFunctionsBasis<P1Basis>;
+    FufemP1Basis p1NodalBasis(p1Basis);
+
+    // initial iterate
+    VectorType x(p1Basis.size());
     x = 0;
 
     // //////////////////////////////////////////////////
@@ -140,10 +146,6 @@ int main (int argc, char *argv[]) try
 
     while (true) {
 
-        using P1Basis = Dune::Functions::LagrangeBasis<GridView,1>;
-        using FufemP1Basis = DuneFunctionsBasis<P1Basis>;
-        FufemP1Basis p1NodalBasis(grid->leafGridView());
-
         // Determine fine Dirichlet and Neumann dofs
         LeafBoundaryPatch leafDirichletBoundary(grid->leafGridView());
         BoundaryPatchProlongator<GridType>::prolong(coarseDirichletBoundary, leafDirichletBoundary);
@@ -301,15 +303,12 @@ int main (int argc, char *argv[]) try
 
     }
 
-  // Output result
-#if HAVE_AMIRAMESH
-  LeafAmiraMeshWriter<GridType> amiramesh;
-  amiramesh.addLeafGrid(*grid,true);
-  amiramesh.addVertexData(x, grid->leafGridView(),true);
-  amiramesh.write("resultGrid",1);
-#else
-#warning You need libamiramesh for this code!
-#endif
+    // Output result
+    auto displacementFunction = Dune::Functions::makeDiscreteGlobalBasisFunction<FieldVector<double,dim> >(p1Basis, x);
+
+    VTKWriter<GridView> vtkWriter(grid->leafGridView());
+    vtkWriter.addVertexData(displacementFunction, VTK::FieldInfo("displacement", VTK::FieldInfo::Type::vector, dim));
+    vtkWriter.write("linear-elasticity-result");
 
 } catch (Exception& e)
 {