diff --git a/VectoCore/VectoCoreTest/Reports/ModDataTest.cs b/VectoCore/VectoCoreTest/Reports/ModDataTest.cs
index 27ca18ea03da34607bfb867b28b66eb6b4537076..4336f8b271b557b8d2a189a1c1922d6c884270b8 100644
--- a/VectoCore/VectoCoreTest/Reports/ModDataTest.cs
+++ b/VectoCore/VectoCoreTest/Reports/ModDataTest.cs
@@ -94,12 +94,70 @@ namespace TUGraz.VectoCore.Tests.Reports
 			RunSimulation(jobName, ExecutionMode.Declaration);
 		}
 
+		[TestCase(@"TestData\Integration\DeclarationMode\Class2_RigidTruck_4x2\Class2_RigidTruck_DECL.vecto")]
+		public void TestVSUM_VMOD_FormatDecl(string jobName)
+		{
+			RunSimulation(jobName, ExecutionMode.Declaration);
+
+			var tmpWriter = new FileOutputWriter(jobName);
+
+			AssertModDataFormat(tmpWriter.GetModDataFileName(Path.GetFileNameWithoutExtension(jobName), "LongHaul", "ReferenceLoad"));
+			AssertSumDataFormat(tmpWriter.SumFileName);
+		}
+
 		[TestCase(@"TestData\Integration\EngineeringMode\Class2_RigidTruck_4x2\Class2_RigidTruck_ENG.vecto"),
 		TestCase(@"TestData\Integration\EngineeringMode\Class5_Tractor_4x2\Class5_Tractor_ENG.vecto"),
 		TestCase(@"TestData\Integration\EngineeringMode\Class9_RigidTruck_6x2_PTO\Class9_RigidTruck_ENG_PTO.vecto"),]
 		public void TestFullCycleModDataIntegrityMT(string jobName)
 		{
-			RunSimulation(jobName, ExecutionMode.Engineering);
+			RunSimulation(jobName, ExecutionMode.Engineering);	
+		}
+
+		private void AssertModDataFormat(string modFilename)
+		{
+			var lineCnt = 0;
+			var gearColumn = -1;
+			foreach (var line in File.ReadLines(modFilename)) {
+				lineCnt++;
+				if (lineCnt == 2) {
+					var header = line.Split(',').ToList();
+					gearColumn = header.FindIndex(x => x.StartsWith("Gear"));
+				}
+				if (lineCnt <= 2) {
+					continue;
+				}
+				var parts = line.Split(',');
+				for (var i = 0; i < 53; i++) {
+					if (i == gearColumn || i >= parts.Length || string.IsNullOrWhiteSpace(parts[i])) {
+						continue;
+					}
+					var numParts = parts[i].Split('.');
+					Assert.AreEqual(2, numParts.Length, string.Format("Line {0}: column {1}: value {2}", lineCnt, i, parts[i]));
+					Assert.IsTrue(numParts[0].Length > 0);
+					Assert.AreEqual(4, numParts[1].Length);
+				} 
+			}
+		}
+
+		private void AssertSumDataFormat(string sumFilename)
+		{
+			var first = 2;
+			foreach (var line in File.ReadLines(sumFilename)) {
+				if (first > 0) {
+					first--;
+					continue;
+				}
+				var parts = line.Split(',');
+				for (var i = 56; i < 128; i++) {
+					if (i >= parts.Length || string.IsNullOrWhiteSpace(parts[i])) {
+						continue;
+					}
+					var numParts = parts[i].Split('.');
+					Assert.AreEqual(2, numParts.Length);
+					Assert.IsTrue(numParts[0].Length > 0);
+					Assert.AreEqual(4, numParts[1].Length);
+				}
+			}
 		}
 
 		private static void RunSimulation(string jobName, ExecutionMode mode)