diff --git a/VECTO/Input Files/Engine.vb b/VECTO/Input Files/Engine.vb
index bdac83d0dfd1eb9ee5251fc595bc31cf5b0879d9..c091b259bc2400670b5f34c3a122d3d5907bd1b7 100644
--- a/VECTO/Input Files/Engine.vb	
+++ b/VECTO/Input Files/Engine.vb	
@@ -159,7 +159,7 @@ Public Class Engine
 			Dim messages As IEnumerable(Of String) =
 					validationResults.Select(Function(r) r.ErrorMessage + String.Join(", ", r.MemberNames.Distinct()))
 			MsgBox("Invalid input." + Environment.NewLine + String.Join(Environment.NewLine, messages), MsgBoxStyle.OkOnly,
-					"Failed to save gearbox")
+					"Failed to save engine")
 			Return False
 		End If
 
diff --git a/VectoCore/VectoCore/InputData/Reader/FullLoadCurveReader.cs b/VectoCore/VectoCore/InputData/Reader/FullLoadCurveReader.cs
index 5276b5372d50e74787d1be2cff5f2e5947599237..e0b5b5b5bc8967b42a7697d2a8947e1c9b5e48a4 100644
--- a/VectoCore/VectoCore/InputData/Reader/FullLoadCurveReader.cs
+++ b/VectoCore/VectoCore/InputData/Reader/FullLoadCurveReader.cs
@@ -84,6 +84,12 @@ namespace TUGraz.VectoCore.InputData.Reader
 				tmp = data.Columns.Count > 3 ? new PT1(data) : new PT1();
 			}
 			entriesFld.Sort((entry1, entry2) => entry1.EngineSpeed.Value().CompareTo(entry2.EngineSpeed.Value()));
+			var duplicates = entriesFld.Select(x => x.EngineSpeed.AsRPM).GroupBy(x => x).Where(g => g.Count() > 1)
+										.Select(g => g.Key).ToList();
+			if (duplicates.Count > 0) {
+				throw new VectoException(
+					"Error reading full-load curve: multiple entries for engine speeds {0}", string.Join(", ", duplicates));
+			}
 			return new EngineFullLoadCurve(entriesFld, tmp);
 		}
 
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponentData/FullLoadCurveTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponentData/FullLoadCurveTest.cs
index ec13cfb79e8f5c0022de2403620ac91de9547e2a..e207b009223d58427c11cc5d358bb82deff394db 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponentData/FullLoadCurveTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponentData/FullLoadCurveTest.cs
@@ -341,5 +341,29 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 			Assert.AreEqual(1352, fldCurve.FullLoadStationaryTorque(2000.RPMtoRad()).Value(), Tolerance);
 			Assert.AreEqual(1231, fldCurve.FullLoadStationaryTorque(580.RPMtoRad()).Value(), Tolerance);
 		}
+
+		[TestCase]
+		public void TestDuplicateEntries()
+		{
+			var fldData = new[] {
+				"560,1180,-149,0.6",
+				"600,1282,-148,0.6",
+				"800,1791,-149,0.6",
+				"1000,2300,-160,0.6",
+				"1200,2400,-179,0.6",
+				"1400,2300,-203,0.6",
+				"1600,2079,-235,0.49",
+				"1800,1857,-264,0.25",
+				"2000,1352,-301,0.25",
+				"2100,1100,-320,0.25",
+				"1200,2410,-180,0.6",
+			};
+			var fldEntries = InputDataHelper.InputDataAsStream("n [U/min],Mfull [Nm],Mdrag [Nm],<PT1> [s] ", fldData);
+
+			AssertHelper.Exception<VectoException>(
+				() => {
+					var fldCurve = FullLoadCurveReader.Create(VectoCSVFile.ReadStream(fldEntries));
+				}, messageContains: "Error reading full-load curve: multiple entries for engine speeds 1200");
+		}
 	}
 }
\ No newline at end of file