diff --git a/ProcessLib/Output/ProcessOutput.cpp b/ProcessLib/Output/ProcessOutput.cpp
index 7bfcc83ccfd039cf8f2f954a4ee0557308d33323..db46a973710855cc86a06e8e4ae6d5692ba75e81 100644
--- a/ProcessLib/Output/ProcessOutput.cpp
+++ b/ProcessLib/Output/ProcessOutput.cpp
@@ -9,9 +9,21 @@
 
 #include "ProcessOutput.h"
 
+#include "BaseLib/BuildInfo.h"
 #include "MeshLib/IO/VtkIO/VtuInterface.h"
 #include "NumLib/DOF/LocalToGlobalIndexMap.h"
 
+/// Copies the ogs_version string containing the release number and the git
+/// hash.
+static void addOgsVersion(MeshLib::Mesh& mesh)
+{
+    auto& ogs_version_field = *MeshLib::getOrCreateMeshProperty<char>(
+        mesh, "OGS_VERSION", MeshLib::MeshItemType::IntegrationPoint, 1);
+
+    ogs_version_field.assign(BaseLib::BuildInfo::ogs_version.begin(),
+                             BaseLib::BuildInfo::ogs_version.end());
+}
+
 #ifndef USE_PETSC  // Not used in PETSc case
 static void addSecondaryVariableNodes(
     double const t,
@@ -119,6 +131,8 @@ void processOutputData(
 {
     DBUG("Process output data.");
 
+    addOgsVersion(mesh);
+
     // Copy result
 #ifdef USE_PETSC
     // TODO It is also possible directly to copy the data for single process