Skip to content

BMW M52TU M54 Fault Codes – P1250, P1188, P1189, P1622 – E36, E46, E39, X5, X3, Z3, Z4

October 19, 2010

I have a 99 BMW 323i that I just adore, but she needs some help. I have done all of the work on her myself, (OK, with my brothers help), but recently i just came across some error codes that I’m not sure about. Over the last few weeks my engine light has been coming on for a while/going off/ coming on, so i pulled the codes and got 4. They are P1250, P1189, P1188, P1622. The car has had no noticeable change in driving or idling, but as life has perfect timing my inspection is up in a few weeks. I’m hesitant also because I’ve read in some forums that some of these codes (esp 1250 and 1188/9) together refer to a different problems, some say O2 sensors, a fuel pressure regulator, leak in oil drain hose, oil separator, or even a airflow meter! I know anyone would need to see my baby to accurately diagnose her but can you provide me with some direction,as to what i should start checking and what to look for?

The codes (for your 99 323i) are as follows:

P1250 = This is not a valid code for your 99 323i. It may be that you are using a generic OBD-II reader and it can not properly read a BMW proprietary code (as opposed to the DOT mandated generic OBD-II codes). When this happens, the code reader will typically give a false code number.

P1188 = Fuel control, bank-1, sensor-1 (cylinders 1-3, pre-cat O2 sensor)

P1189 = Fuel control, bank-2, sensor-1 (cylinders 4-6, pre-cat O2 sensor)

P1622 = Map cooling thermostat control circuit

With these codes (and ignoring the P1250, for now), we would suggest that you replace the thermostat. While the thermostat code does say control circuit, failure of the electrically controlled thermostats is very common and we would suggest that you start here. The fuel control codes could certainly be a result of the thermostat not functioning properly. After the thermostat is replaced, clear the codes and then see if any reappear. If they do, we can address them.


  1. Ken Clark permalink

    On my 98 328is with 155k miles I have generic reader codes P1250, 0170, 0173, 1188, & 1189. I have already replaced the ICV and checked hoses but still have rough idle and stalling (sometimes). Current with normal tune up items. I will replace all PVC related hoses and intake boot when I get them but in meantime what do these generic codes really mean? I have never had o2 sensor codes and have not replaced them yet.

    • P1250 = Invalid code (need to use a code reader that will read BMW proprietary codes)
      P0170 = Fuel Trim, Bank-1
      P0173 = Fuel Trim, Bank-2
      P1188 = Fuel control, bank-1, sensor-1 (pre-cat sensor)
      P1189 = Fuel control, bank-2, sensor-1 (pre-cat sensor)

      These codes are due to the oxygen sensors sending info to the engine management system that is causing the system to adjust fuel controls outside of the acceptable parameters. This is either due to a lean fuel condition, a rich condition or oxygen sensors that are getting sluggish and are not switching fast enough or with enough range ….. but they are not “worn” enough to generate a fault for the sensors themselves. If the sensors have 155,000 miles on them, you certainly would not be wasting money by replacing them (at least the pre-cat ones).

      Once you are sure that you have no vacuum leaks, if the engine is still rough, and the codes are still generated …. and the sensors have been replaced …. you may consider the potential of a faulty thermostat (is the engine temp properly running in the middle of the gauge?) or leaking seals on the VANOS piston (the control unit for the variable camshaft timing system).

      Click HERE for BMW proprietary code reader

  2. Lon permalink

    I have a 2000 323i and the check engine light is on with a code of P1189 only. Car runs fine and the temp gauge is consistant at the mid rage point (sticking straight up). Coud this still be the thermostat or should I look at changing out my O2 sensors (pre-cat)?


    • P1189 is; fuel control, bank-2, sensor-1

      This is the pre-cat sensor for cylinders 4-6. If this is the only code that you have, it could be a degraded sensor or you may have a small vacuum leak. You can start by swapping the two pre-cat sensors, clear the codes and see if the fault moves to bank-1 or stays at bank-2. If the code moves, the sensor is at fault. If the code stays at bank-2, start by searching for a vacuum leak. But remember that if it is only affecting the rear bank, it would have to be near the intake ports for the rear cylinders.

Comments are closed.