diff --git a/dune/vtk/vtkwriterinterface.hh b/dune/vtk/vtkwriterinterface.hh
index 97117ce228db631dee5414c596aad56e6446161c..b379a0f6bf58f8fc260358acfe1c2df4f23f3602 100644
--- a/dune/vtk/vtkwriterinterface.hh
+++ b/dune/vtk/vtkwriterinterface.hh
@@ -59,15 +59,21 @@ namespace Dune
       : VtkWriterInterface(std::make_shared<DataCollector>(gridView), format, datatype)
     {}
 
+    /// \brief Constructor, wraps the passed DataCollector in a non-destroying shared_ptr
+    VtkWriterInterface (DataCollector& dataCollector,
+                        Vtk::FormatTypes format = Vtk::BINARY,
+                        Vtk::DataTypes datatype = Vtk::FLOAT32)
+      : VtkWriterInterface(stackobject_to_shared_ptr(dataCollector), format, datatype)
+    {}
+
     /// \brief Constructor, stores the passed DataCollector
     VtkWriterInterface (std::shared_ptr<DataCollector> dataCollector,
                         Vtk::FormatTypes format = Vtk::BINARY,
                         Vtk::DataTypes datatype = Vtk::FLOAT32)
       : dataCollector_(std::move(dataCollector))
-      , format_(format)
-      , datatype_(datatype)
     {
       setFormat(format);
+      setDatatype(datatype);
     }