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;
 		}