Go-Parts
Cart 0
Your cart is empty
Add an item to see it appear here.
Wrenchy
Go-Parts Garage
Expert guides for diagnosing, troubleshooting, and replacing auto parts Expert guides for diagnosing and replacing auto parts
Browse All Articles →
🧭 Diagnostic Flowchart 🎬 Helpful Videos 🛍️ Shop This Part

P0139 on 2007-2013 BMW M3: Slow O2 Sensor Response Causes and Fixes

This code means the passenger-side downstream (post-catalytic converter) oxygen sensor is responding too slowly. The most common fix is replacing the aged sensor itself, but always check for exhaust leaks between the engine and the sensor first, as this is a frequent underlying cause, particularly at the header-to-x-pipe 'donut' gaskets.

20 minutes to read 2007-2013 BMW M3
Most Likely Cause
Aged or Contaminated O2 Sensor
Difficulty
2/5
Est. Time
1.2 hrs
DIY Doable?
✅ Yes
Shop Labor
$100 – $450
Parts Price
$20 – $180
⚠️ Drivable, but... — Yes, you can drive the vehicle. This code does not typically cause immediate drivability problems, but your car will fail an emissions test and may experience slightly reduced fuel economy. Ignoring it long-term is not recommended as it can lead to incorrect fuel mixtures, potentially affecting catalytic converter health.
Key Takeaways
  • P0139 on your M3 points to the downstream (post-cat) O2 sensor on the passenger side.
  • Before buying a new sensor, thoroughly check for exhaust leaks at the header-to-x-pipe connection, specifically the 'donut' gaskets, as this is a very common cause.
  • The most likely fix is replacing the aged O2 sensor (Bosch is the OEM supplier) after ruling out leaks.
  • After replacing the sensor, you must clear the codes and reset the DME adaptations using a BMW-specific scan tool for the repair to be fully effective.
The diagnostic trouble code P0139 stands for 'O2 Sensor Circuit Slow Response (Bank 1, Sensor 2)'. Your M3's engine computer (DME) has determined that the oxygen sensor located on Bank 1 (passenger side on US models) after the catalytic converter is not reporting changes in exhaust gas oxygen levels quickly enough. The DME regularly tests sensor response, for example, by cutting fuel during deceleration, and expects a rapid voltage change within a specific timeframe, sometimes as little as 7 seconds. If the sensor is sluggish or 'lazy' and fails this test, the code is stored and the Check Engine Light is illuminated.

What's Unique About the 2007-2013 BMW M3

On the S65 V8 engine, this code specifically points to the passenger-side downstream O2 sensor. Owners often misdiagnose the issue by replacing the sensor without first checking for exhaust leaks at the header-to-x-pipe connection, which is a common failure point that can cause this code. These leaks often occur at the graphite 'donut' gaskets. It's also critical to differentiate this post-catalyst sensor from the pre-catalyst (upstream) sensor, which uses a different connector and part number.

Symptoms You May Notice

  • Check Engine Light (CEL) is on
  • Failing a state emissions or smog test
  • Slight decrease in fuel economy
  • Audible exhaust leak (ticking or puffing noise when cold) may be present
  • Smell of exhaust fumes in the cabin or around the car
⚠️ Don't Waste Money on the Wrong Fix
  • Replacing the O2 sensor without first checking for exhaust leaks. A leak will often cause a new sensor to throw the same code.
  • Replacing the wrong sensor, such as the pre-catalytic converter (Sensor 1) or the sensor on the driver's side (Bank 2).
  • Mistaking an oil leak from the valve cover gasket dripping onto the hot exhaust for an exhaust leak smell.

Most Likely Causes

  1. Aged or Contaminated O2 Sensor 🔴 High Probability → Shop Oxygen Sensor Oxygen sensors are wear items. After 80,000-100,000 miles, the internal sensing element can become contaminated with carbon, oil, or coolant, slowing its reaction time.
    How to confirm: Use a diagnostic scan tool to graph the voltage of Bank 1 Sensor 2. During a deceleration fuel cut event, the voltage should drop below 0.2V quickly. If the voltage is flat, biased, or responds very slowly to induced rich/lean conditions (e.g., a throttle snap), the sensor is likely faulty. A bad sensor may read a constant voltage, such as 0.3V, whereas a healthy one will fluctuate.
    Typical fix: Replace the Bank 1, Sensor 2 (passenger side, downstream) oxygen sensor. Reset DME adaptations after replacement using a tool like ISTA.
    Est. part cost: $120-$180
  2. Exhaust Leak 🟡 Medium Probability The graphite ring gaskets (often called 'donut' gaskets) at the exhaust manifold to x-pipe connection are a known failure point on the S65. They degrade over time from heat and vibration, creating leaks.
    How to confirm: Perform a visual inspection of the exhaust system from the engine to the sensor, looking for black soot marks around flanges and gaskets. Listen for a distinct 'ticking' or 'puffing' sound when the engine is cold that may disappear as the metal expands with heat. A smoke test is the most definitive way to find a leak. 🎬 Watch: How to use a smoke machine to find exhaust leaks. Some owners use a cigar or incense stick to watch the smoke get blown around by the leak.
    Typical fix: Replace the leaking exhaust gasket(s) and associated hardware. The code should be cleared and the vehicle re-tested before replacing any sensors.
    Est. part cost: $20-$60 for gaskets
  3. Damaged Wiring or Connector ⚪ Low Probability The sensor wiring runs underneath the car and is exposed to road debris, water, and extreme heat, which can cause corrosion, chafing, or physical damage over time. This can add resistance to the circuit, slowing the signal. One owner reported crushing the connector after bottoming out the car, which required sensor replacement.
    How to confirm: Visually inspect the wiring harness leading to the O2 sensor for any signs of melting, chafing, or breaks. Unplug the connector and check for corrosion, moisture, or bent pins.
    Typical fix: Repair the damaged section of the harness or clean/replace the connector.
    Est. part cost: $10-$50 for wiring repair supplies

Rare But Worth Checking

  • Leaking Fuel Injector: A leaking injector on Bank 1 can create a persistent rich condition, eventually fouling the O2 sensor with soot and causing it to respond slowly. This would typically be accompanied by other codes related to fuel trim or misfires.
  • DME Software or Internal Fault: In very rare instances, the engine computer (DME) may have a software glitch, outdated calibration, or internal processing delay. This should only be considered after all other possibilities have been exhaustively ruled out.

Diagnosis Steps

  1. Read the code with an OBD-II scanner to confirm P0139 is present and check for any other related codes. Use a BMW-specific tool like ISTA to check for shadow codes like 2C7E.
  2. With the engine cold, start it and listen carefully for any exhaust ticking or puffing noises from the passenger side of the engine bay or under the car, which would indicate a leak.
  3. Visually inspect the exhaust system from the passenger-side cylinder head back to the post-cat sensor. Look for black soot stains at flanges and connections, especially the header-to-x-pipe 'donut' gaskets.
  4. Inspect the O2 sensor's wiring harness and connector for any signs of melting, corrosion, or physical damage.
  5. If no leaks or wiring damage are found, use a scan tool with live data capabilities to graph the voltage for 'Bank 1, Sensor 2'.
  6. The voltage should fluctuate slowly. If it is completely flat or takes many seconds to change after a sharp throttle blip or during deceleration, the sensor itself is the primary suspect. During a fuel cut on deceleration, the voltage should drop below 0.2V within about 7 seconds.
  7. If an exhaust leak is suspected but not visible, a professional smoke test is the definitive diagnostic step. A DIY method involves using a smoke source (like a cigar) near suspected leak points with the engine running to see if the smoke is disturbed.
  8. Replace the sensor only after ruling out leaks and wiring issues.
  9. After replacement, clear the codes and use a BMW-specific tool (like ISTA) to reset the DME's fuel and emissions adaptations to ensure the system relearns with the new component.

Parts You'll Likely Need

  • Post-Catalytic Oxygen Sensor (Bank 1) (OEM #11787539125) — This is the sensor being monitored by the DME. It is a common wear item and the most frequent cause of the P0139 code when no exhaust leaks are present.
    Trusted brands: Bosch (OEM supplier), NTK, Denso
    OEM price range: $150-$190
    Aftermarket price range: $100-$150
  • Exhaust Manifold to X-Pipe Gasket (OEM #18307838391) — This graphite 'donut' gasket is a very common location for exhaust leaks on the S65 engine, which can directly cause the P0139 code. 🎬 Watch: How to install new exhaust donut gaskets correctly. Some owners have reported successfully using gaskets from other manufacturers, like GM part 60718, as a substitute.
    Trusted brands: Genuine BMW, Elring
    OEM price range: $25-$40
    Aftermarket price range: $15-$25

Related Codes That Often Appear With This One

  • P0420 — If the catalytic converter is failing, it can cause erratic readings from the downstream O2 sensor, sometimes leading to a slow response code before a full catalyst efficiency code is set.
  • P2271 — 'O2 Sensor Signal Biased/Stuck Rich (Bank 1 Sensor 2)' is a related code that can appear alongside P0139, indicating the sensor is not only slow but also reading incorrectly.
  • P0141 — 'O2 Sensor Heater Circuit (Bank 1, Sensor 2)' can occur if the internal heater element of the sensor fails, which often happens as the sensor ages and can precede a slow response failure.

Platform-Specific Known Issues

  • Exhaust Donut Gasket Failure: The connection between the headers and the x-pipe uses two graphite ring gaskets that are prone to failure. An owner on M3Post noted, 'If you've never replaced the graphite ring gaskets at the flange between the headers and the cats, it's probably those.' This leak introduces oxygen into the exhaust stream before the sensor, causing slow or incorrect readings.
  • Real Owner Experience: Leak Persisted After Gasket Change: A YouTuber performing this repair noted that even after replacing the test pipe gasket, a small leak returned. He suspected the aftermarket test pipe was not seating perfectly against the header flange, or that the pipe was too close to the heat shield causing a rattle. This highlights the importance of ensuring proper fitment of all exhaust components.

Mechanic-Grade Diagnostic Values

  • O2 Sensor Internal Heater Resistance — expected: 2 - 15 Ohms at ambient temperature, measured across the two same-colored heater pins (often white or black).. Failure: An open circuit (infinite resistance) or a value significantly outside the expected range indicates a failed heater element, requiring sensor replacement.
  • Post-Catalyst O2 Sensor Voltage (Live Data) — expected: During deceleration with fuel cut-off, voltage should drop below 0.2 volts. During normal idle, a healthy sensor will fluctuate, for example between 0.2V and 0.7V.. Failure: The DME may set code P0139 if the voltage fails to drop below 0.2V for 7 seconds or more during fuel cut-off. A sensor that is stuck at a constant voltage (e.g., 0.3V) is also a strong indicator of failure.

Hidden / Shadow Codes Worth Checking

  • 0x2C7E: This is the BMW-specific hexadecimal code for 'Oxygen sensor after catalytic converter, slow response' for Bank 1, which is a direct equivalent of P0139. (see via BMW-specific diagnostic software (such as ISTA or INPA) or an advanced professional scan tool is required to read these codes.)
  • 223 (Hex: 0xDF): An older BMW fault code list shows code 223 for 'Jump time, ox.sensor after cat. conv., bank 1', which also corresponds to P0139. (see via May be seen on older diagnostic systems or in raw fault code lists for the DME.)

Scan Tool Commands That Help

  • ISTA (Rheingold): O2 Sensor Test Plan — When P0139 or a related shadow code is stored, ISTA will generate a specific test plan. This function guides the technician through a logical diagnostic sequence, including checking wiring, running system tests, and providing expected values, to pinpoint the root cause.
  • ISTA (Rheingold): Reset DME Adaptations — This is a critical step after replacing an oxygen sensor. It clears the long-term fuel trim and other learned values from the engine computer, forcing the DME to relearn its strategy based on the new, correctly functioning sensor.

Wiring & Ground Locations

  • Bank 1 Sensor 2 Wiring — The wiring runs from the post-catalytic converter sensor on the passenger side exhaust, up into the vehicle's underbody, connecting to the main engine harness.. A forum user who hardwired a replacement sensor after crushing the original connector identified the wire colors from the engine harness side: heater circuit wires are Orange and White/Grey, while the signal wires are Yellow and Red/Black. The two white wires on the sensor side are for the heater and are interchangeable. Damage to this harness from road debris or bottoming out is a possible cause of the code.
  • DME Connector (MSS60) — The DME is located in the electronics box on the passenger side of the engine bay, under the cabin air filter housing.. While specific pinouts for the post-cat sensor on the S65's MSS60 DME are difficult to isolate from public diagrams, testing continuity from the sensor connector back to the correct pins on the DME connector is the ultimate way to rule out a wiring break. An E92 M3 pinout guide shows pins for the pre-cat sensors, but post-cat pins are not clearly labeled, requiring a factory wiring diagram for accurate testing.

Real Owner Repair Stories

  • Bimmerpost user 'vortx' (2008 E92 M3) — Check Engine Light after bottoming out the car on a speed bump. Initial code was for post-cat O2 sensor. After attempting to hardwire a fix, a new code (2C74) appeared.
    ❌ Tried (didn't work) Hardwiring the sensor by splicing the wires based on a diagram. This led to a different O2 sensor signal code.
    ✅ What actually fixed it The final resolution recommended by other users was to stop attempting to repair the crushed connector and damaged sensor and to install a new, complete oxygen sensor assembly.
  • Reddit user 'madfrais' (2003 VW Golf 2.0L (Note: Not a BMW, but illustrates sensor failure behavior)) — P0139 code, live data showed sensor voltage was stuck at a constant 0.3V.
    ❌ Tried (didn't work) Clearing the code multiple times; it always returned.
    ✅ What actually fixed it Splicing in a new universal Bosch O2 sensor. The new sensor's voltage correctly fluctuated between 0.2V and 0.7V on the OBD2 scanner, and the code was resolved. The old sensor was noted to have a very slow reaction when tested with a propane torch.

OEM Part Supersession History

  • 11787539125N/A — No supersession information found in searches. This part number appears to be current for the specified application.

Model Year Variations Within This Range

  • 2007-2013: No significant variations related to the S65 engine's emissions control system or the components that would cause a P0139 code have been documented across the E9x M3 model years. Changes were primarily cosmetic (LCI taillights) or related to infotainment (CCC vs. CIC iDrive).

Diagnostic Flowchart

Start by confirming if P0139 (Bank 1 Sensor 2 Slow Response) is the only code or if it's accompanied by shadow codes like 2C7E using a BMW-specific tool like ISTA.
Inspect the connection between the headers and the x-pipe. Are there black soot marks around the flange?
→ Replace the graphite 'donut' gaskets and associated hardware. These are a known failure point on the S65 platform due to heat and vibration. Clear codes and retest.
→ Perform a professional smoke test or DIY 'cigar' test. Even small leaks at the header-to-x-pipe flange introduce oxygen that triggers P0139 before replacing sensors.
Inspect the Bank 1 Sensor 2 (passenger side downstream) wiring harness. Is there evidence of melting, chafing, or road debris damage?
→ Repair the harness or replace the connector. S65 O2 wiring is exposed to extreme heat and road debris; physical damage or crushed connectors from bottoming out can cause slow signal response.
Using a scan tool, graph Bank 1 Sensor 2 voltage. Perform a deceleration fuel cut (let off throttle at high RPM). Does voltage drop below 0.2V within 7 seconds?
→ The sensor is likely healthy. Re-examine the exhaust system for intermittent leaks or check for DME software updates. Ensure no aftermarket 'test pipes' are causing fitment issues.
Is the vehicle mileage above 80,000 miles or is there a smell of exhaust fumes around the car?
→ Replace the Bank 1, Sensor 2 oxygen sensor. S65 sensors are wear items that become contaminated with carbon or oil over 80k-100k miles. Use ISTA to reset DME fuel and emissions adaptations after replacement.
→ Double-check for a cracked weld on the x-pipe or a leaking valve cover gasket dripping oil onto the sensor connector before replacing the sensor.

Other Known Issues on This Vehicle

Issues unrelated to this code that are worth knowing about as an owner of this generation:

  • Rod Bearing Failure 🔴 High — A widely documented issue. Considered preventative maintenance by many owners, often recommended between 60,000-80,000 miles. Caused by tight factory clearances and material choice.
  • Throttle Body Actuator Failure 🔴 High — Very common failure, typically between 50,000-70,000 miles. Caused by wear of internal plastic gears and failure of electronic components on the circuit board.
  • Idle Control Valve Failure 🟠 Medium — A known weak point that can fail, causing rough, fluctuating, or stalling idle.
  • Valve Cover Gasket Leaks 🟡 Low — Common oil leak point as the gaskets harden and warp from engine heat over time. Symptoms include oil smell, smoke from the engine bay as oil drips on exhaust, and visible oil on the engine.

Used vs. New Parts: Buying Guide for This Vehicle

When a used part is the smart pick: For this specific repair, using a used part is not recommended for the oxygen sensor itself. However, if the cause is a physically damaged connector, sourcing a used connector pigtail from a salvage yard for a splice repair is a viable option.

Donor-vehicle mileage cap: roughly under 150000 miles for the part to have meaningful remaining life.

What to inspect on the donor part:

  • For a connector pigtail: ensure the locking tabs are intact, there is no visible corrosion on the pins, and there is at least 6 inches of clean, un-stretched wire.
  • For exhaust components (if replacing a cracked pipe): check for rust perforation, ensure flanges are flat and not warped, and look for any previous weld repairs that may indicate a weak spot.

OEM-only on this vehicle (don't cheap out):

  • Oxygen Sensor: While Bosch is the OEM supplier and is acceptable, it is strongly recommended to avoid unbranded, generic aftermarket O2 sensors. Forum consensus suggests they can have different response characteristics that may not resolve the code or may fail prematurely.

Aftermarket brands forum-validated for this vehicle:

  • Bosch (OEM supplier for the sensor)
  • NTK (Often an OEM supplier for other BMWs, generally high quality)
  • Elring (For exhaust gaskets)

Brands owners have reported issues with on this vehicle:

  • Generic, no-name, or 'white-box' oxygen sensors sold on auction sites are frequently cited as problematic for European vehicles.

Real Owner Stories

Aggregated from forums and TSBs cited above. Mileages and costs reflect what owners reported in those sources.

2008-2013 BMW M3 S65

Symptoms: The owner noted that the graphite ring gaskets at the flange between the headers and the cats were falling apart, causing an exhaust leak.

What fixed it: Replacement of the graphite ring 'donut' gaskets at the header-to-cat connection.

Source hint: M3Post Forum Thread: 'e90 M3 strong exhaust - stock'

2008-2013 BMW M3 S65

Symptoms: Owner suspected an exhaust leak and used a DIY method involving a Cuban cigar to blow smoke at the exhaust joints while the car was on a jack to identify the leak source.

What fixed it: Identified leaks at the exhaust joints using a smoke test.

Source hint: M3Post Forum Thread: 'Exhaust leak??'

2008-2013 BMW M3 S65

Symptoms: The O2 sensor connector was crushed after the vehicle bottomed out, leading to circuit issues.

What fixed it: Replacement of the oxygen sensor due to physical damage to the connector.

Source hint: Article Context Pass 1-4 (Common Causes: Damaged Wiring or Connector)

2008-2013 BMW M3 S65

Symptoms: A small leak returned even after replacing the test pipe gasket; the owner suspected the aftermarket pipe was not seating perfectly against the header flange or was hitting the heat shield.

What fixed it: Ensuring proper fitment and seating of the exhaust components/test pipes against the header flange.

Source hint: Vehicle Specific Issues: Real Owner Experience: Leak Persisted After Gasket Change

Frequently Asked Questions

Which side of the S65 engine is Bank 1 for the P0139 code?
Bank 1 refers to the passenger side of the vehicle. For code P0139, the issue is specifically with Sensor 2, which is the downstream (post-cat) sensor on that side.
Is there a BMW-specific shadow code associated with P0139?
Yes, when diagnosing with a BMW-specific tool like ISTA, you may find the shadow code 2C7E accompanying the P0139 fault.
Can I just replace the sensor, or do I need to do something else with the DME?
After replacing the Bank 1, Sensor 2 oxygen sensor, you must reset the DME fuel and emissions adaptations using a tool like ISTA to ensure the system relearns correctly.
I hear a ticking noise when the engine is cold; could this be related to P0139?
Yes, a ticking or puffing noise when cold often indicates an exhaust leak at the header-to-x-pipe 'donut' gaskets. This leak introduces oxygen that can cause the slow response signal triggered by P0139.
How can I test if the O2 sensor is actually slow without just replacing it?
You can use a scan tool to graph the voltage. During a deceleration fuel cut event, a healthy sensor should drop below 0.2V within approximately 7 seconds. If it takes longer or stays flat, the sensor is likely faulty.
Are there specific gaskets known to fail on the M3 that cause this code?
The graphite ring gaskets (donut gaskets) at the flange between the exhaust manifolds (headers) and the x-pipe are a known failure point on the S65 engine due to heat and vibration.
How to diagnose/locate exhaust leaks using smoke tester
How to diagnose/locate exhaust leaks using smoke tester
How To: Diagnose Exhaust Leaks with a Smoke Machine (Any Vehicle)
How To: Diagnose Exhaust Leaks with a Smoke Machine (Any Vehicle)
E92 M3 Exhaust Leak Fix (Somewhat) & Oil Change
E92 M3 Exhaust Leak Fix (Somewhat) & Oil Change
3 Series BMW Oxygen Sensor Replacement (bank 1 Sensor 2) Downstream Sensor
3 Series BMW Oxygen Sensor Replacement (bank 1 Sensor 2) Downstream Sensor
BMW E90 - downstream 02 sensors replacement (DIY21)
BMW E90 - downstream 02 sensors replacement (DIY21)
How to Install Exhaust Donuts
How to Install Exhaust Donuts
Exhaust Gasket Replacement - Fix Your Exhaust Leak
Exhaust Gasket Replacement - Fix Your Exhaust Leak
Wrenchy
Article researched & written by
Go-Parts' AI research assistant. Every article is backed by live web research, verified OEM data, and real technician knowledge — so you get accurate, up-to-date information you can trust.
Meet Wrenchy → Updated Jun 8, 2026

The information in this article is provided for general reference and educational purposes only. Vehicle specifications, procedures, and part compatibility can vary by production date, trim level, and region. Always consult your vehicle's factory service manual and verify part numbers before purchasing or performing repairs. Safety-critical components such as airbags, seat belts, and braking systems should be installed by a qualified professional.

Year Coverage
This article covers the OBD-II Code P0139 (Deep Dive) for:
  • BMW M3: 2007200820092010201120122013
In this article
🧭 Diagnostic Flowchart
Jump to ▴

Email This Guide

We'll send you a link to this article so you can read it later or share it.

Added to cart · Part