diff --git a/src/output/VTKWriter.cpp b/src/output/VTKWriter.cpp
index 103807dbc81ec10aba616730e8663317de13e967..796a1c0ff9703697be92be2633ab2ca2a92805bb 100644
--- a/src/output/VTKWriter.cpp
+++ b/src/output/VTKWriter.cpp
@@ -3,7 +3,9 @@
 #include <mesh/Connectivity.hpp>
 #include <mesh/Mesh.hpp>
 #include <utils/Messenger.hpp>
+#include <utils/RevisionInfo.hpp>
 
+#include <ctime>
 #include <fstream>
 #include <iomanip>
 #include <sstream>
@@ -18,6 +20,22 @@ VTKWriter::_getFilenamePVTU() const
   return sout.str();
 }
 
+std::string
+VTKWriter::_getDateAndVersionComment() const
+{
+  std::ostringstream os;
+
+  std::time_t now = std::time(nullptr);
+  os << "<!--\n";
+  os << "  Generated by pugs: " << std::ctime(&now);
+  os << "  version: " << RevisionInfo::version() << '\n';
+  os << "  tag:  " << RevisionInfo::gitTag() << '\n';
+  os << "  HEAD: " << RevisionInfo::gitHead() << '\n';
+  os << "  hash: " << RevisionInfo::gitHash() << " (" << ((RevisionInfo::gitIsClean()) ? "clean" : "dirty") << ")\n";
+  os << "-->\n";
+  return os.str();
+}
+
 std::string
 VTKWriter::_getFilenameVTU(int rank_number) const
 {
@@ -269,6 +287,7 @@ VTKWriter::_write(const std::shared_ptr<const MeshType>& mesh,
   if (parallel::rank() == 0) {   // write PVTK file
     std::ofstream fout(_getFilenamePVTU());
     fout << "<?xml version=\"1.0\"?>\n";
+    fout << _getDateAndVersionComment();
     fout << "<VTKFile type=\"PUnstructuredGrid\">\n";
     fout << "<PUnstructuredGrid GhostLevel=\"0\">\n";
 
@@ -318,6 +337,7 @@ VTKWriter::_write(const std::shared_ptr<const MeshType>& mesh,
   {   // write VTK files
     std::ofstream fout(_getFilenameVTU(parallel::rank()));
     fout << "<?xml version=\"1.0\"?>\n";
+    fout << _getDateAndVersionComment();
     fout << "<VTKFile type=\"UnstructuredGrid\">\n";
     fout << "<UnstructuredGrid>\n";
     fout << "<Piece NumberOfPoints=\"" << mesh->numberOfNodes() << "\" NumberOfCells=\"" << mesh->numberOfCells()
diff --git a/src/output/VTKWriter.hpp b/src/output/VTKWriter.hpp
index fadec4f9d39386a4386cfd97f88aede7066f8295..52a4bd9d94918d01cad6fccbced121688883baad 100644
--- a/src/output/VTKWriter.hpp
+++ b/src/output/VTKWriter.hpp
@@ -19,6 +19,8 @@ class VTKWriter : public IWriter
   mutable double m_last_time;
   const double m_time_period;
 
+  std::string _getDateAndVersionComment() const;
+
   std::string _getFilenamePVTU() const;
 
   std::string _getFilenameVTU(int rank_number) const;