The past years I more or less specialized in engine work on the older M engines. My usual approach is to establish current condition and base further actions on that. Usually that involves an intake overhaul (gaskets, o-rings, hoses) followed by a full synchronization of the ITB's, both mechanically and on vacuum, together with a full adjustment based on exhaust gas analysis.
Most of these cars are well over 20 years old and it is about time for some catching up. That involves a one time investment but makes sure that the car is ready for many years again, also reduces the otherwise significant risk on a costly engine damage and helps improve both output and efficiency. I picked this up as knowledge, recent experience and the right tools are hard to find these days. There isn't a single garage that will reject a M3 for maintenance I guess, but most are not able to go the extra mile these engines need and deserve.
Engines I specialize in, and limit myself to: M88 (M1, E28 M5, E24 M635CSi), S14 (E30 320iS, M3), S50/S52 (E36 M3, Z3 M). Done some S38's (E34 M5) in the past as well but usually I redirect them to another specialist.
A few pics of past projects to illustrate:
First diagnosis, where possible using pc with CarSoft software as well

Spark plug analysis

A common picture, very well hidden under the intake manifold we see aging hoses causing vacuum leaks, engine hesitation and severe engine damage due to lean running conditions. And leaking intake gaskets in this case as a bonus!


Valve clearance adjustment using special BMW tool

Mechanical ITB sync

Vacuum ITB sync

Oil pan removal for replacing connection rod bearing replacement



Oil pan cleaned up and higher oil pan baffle placed

