Why does one of these functions work but not the other?

I’m trying to call a unique function when my player exits a vehicle. It works fine for two of the vehicles but not the third one.

I get



 function GM:PlayerLeaveVehicle(ply, car)   // GLOBAL FUNCTION ON VEHICLE EXIT, FUNCTIONS ARE SPECIFIC AND FOUND INSIDE VEHICLE FUNCTIONS 
 car.OnLeave(ply)
  end  




util.AddNetworkString("spawn_sq44")

net.Receive("spawn_sq44", function(l, ply)
	local hit = ply:GetEyeTrace().HitPos
 print( "Attempting Sq44 Spawn" )
	local car = ents.Create("prop_vehicle_jeep")
	car.VehicleTable = list.Get("Vehicles")["Scania Firetruck "]
	car:SetKeyValue( "vehiclescript", "scripts/vehicles/sentry/scaniafire.txt" )
	car:SetModel ("models/sentry/scania_firetruck.mdl")
	//Car:Rotate (90)
	car:SetPos(hit + Vector (0, 15, 0))
	car:Spawn()
	car:Activate()
	car.OnLeave = function(car, ply) print ("Exit Test 2") end

	

end)

util.AddNetworkString("spawn_tr45")

net.Receive("spawn_tr45", function(l, ply)
	local hit = ply:GetEyeTrace().HitPos
 print( "Attempting Tr45 Spawn" )
	local car = ents.Create("prop_vehicle_jeep")
	car.VehicleTable = list.Get("Vehicles")["GTAIV Firetruck "]
	car:SetKeyValue( "vehiclescript", "scripts/vehicles/firetruck.txt" )
	car:SetModel ("models/sickness/truckfire.mdl")
	//Car:Rotate (90)
	car:SetPos(hit + Vector (0, 15, 0))
	car:Spawn()
	car:Activate()
	car.OnLeave = function(car, ply) print ("Exit test 3") end


	//Entity(1) :EmitSound("truck45/arriving.mp3",100,100,1,CHAN_AUTO)

end) 	

The 2nd block doesn’t work…what am I missing here?