In a vehicle including an engine and manual controls, a method of diagnosis and software upgrade as claimed in claim 7 including the step of utilizing the variety of dynamic data at the remote diagnostic station to determine required program changes and transmitting signals to the vehicle indicative of the program changes.