diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
index 3ef8e0092b88a0817780a9d00e9a256d8a1166f4..38f744241354a299c71b1d89c736a6f27c6fe386 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
@@ -150,14 +150,18 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			container.ModalData.AddAuxiliary(Constants.Auxiliaries.IDs.Fan);
 
             if (data.PTO != null) {
+                aux.AddConstant(Constants.Auxiliaries.IDs.PTOTransmission,
+                    DeclarationData.PTOTransmission.Lookup(data.PTO.TransmissionType).PowerDemand);
                 container.ModalData.AddAuxiliary(Constants.Auxiliaries.IDs.PTOTransmission,
                     Constants.Auxiliaries.PowerPrefix + Constants.Auxiliaries.IDs.PTOTransmission);
 
+                aux.Add(Constants.Auxiliaries.IDs.PTOConsumer,
+                    (n, absTime, dt, dryRun) => container.PTOActive ? null : data.PTO.LossMap.GetTorqueLoss(n) * n);
                 container.ModalData.AddAuxiliary(Constants.Auxiliaries.IDs.PTOConsumer,
                     Constants.Auxiliaries.PowerPrefix + Constants.Auxiliaries.IDs.PTOConsumer);
             }
 
-			engine.Connect(aux.Port());
+            engine.Connect(aux.Port());
 
 			var idleController = new CombustionEngine.CombustionEngineNoDubleclutchIdleController(engine, container);
 			//if (data.PTO != null && data.PTO.PTOCycle != null) {
@@ -356,7 +360,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			AddSwitchingAux(aux,container.ModalData,Constants.Auxiliaries.IDs.SteeringPump, auxData);
 			AddSwitchingAux(aux,container.ModalData,Constants.Auxiliaries.IDs.ElectricSystem, auxData);
 			AddSwitchingAux(aux, container.ModalData, Constants.Auxiliaries.IDs.PneumaticSystem, auxData);
-			
+
 			return aux;
 		}
 
diff --git a/VectoCore/VectoCoreTest/Integration/VTP/VTPTest.cs b/VectoCore/VectoCoreTest/Integration/VTP/VTPTest.cs
index 0dd56efa2ce52a5093e0dec1295b6736dc962f16..9aef03df7918c5cd12b65d93a43f1e43dc3f84fe 100644
--- a/VectoCore/VectoCoreTest/Integration/VTP/VTPTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/VTP/VTPTest.cs
@@ -88,7 +88,7 @@ namespace TUGraz.VectoCore.Tests.Integration.VTP
 		[Category("LongRunning")]
 		[Category("Integration")]
 		[TestCase(@"TestData\Integration\VTPMode\GenericVehicle\class_5_generic vehicle_DECL.vecto", 0.8972, TestName = "Generic Group 5 VTP Test Declaration Mode"),
-		 TestCase(@"TestData\Integration\VTPMode\GenericVehicle XMLJob PTO\class_5_generic vehicle_DECL.vecto", 0.8972, TestName = "Generic Group 5 VTP Test Declaration Mode with PTO"),
+		 TestCase(@"TestData\Integration\VTPMode\GenericVehicle XMLJob PTO\class_5_generic vehicle_DECL.vecto", 0.8925, TestName = "Generic Group 5 VTP Test Declaration Mode with PTO"),
 		TestCase(@"TestData\Integration\VTPMode\GenericVehicle\class_3_generic vehicle_DECL.vecto", 1.0068, TestName = "Generic Group 3 VTP Test Declaration Mode")
 		]
 		public void RunVTP_Declaration(string jobFile, double expectedVTPFactor)