# P0128: Coolant Thermostat (Coolant Temperature Below Thermostat Regulating Temperature)

**Verdict:** Safe to drive

Cooling - Generic OBD-II code, applies to all gasoline cars and light trucks sold in the US since 1996.

- **Typical cost:** $50-$600
- **Urgency:** Keep driving
- **Most likely:** Thermostat stuck open
- **DIY?:** Yes, moderate

## Quick answer

P0128 means the engine took too long to warm up, so the coolant stayed below the temperature the thermostat should hold. A thermostat stuck open is by far the most common cause. The car is safe to drive, but fuel economy and cabin heat suffer.

## What does P0128 mean?

The thermostat is a heat-sensitive valve between the engine and the radiator. When the engine is cold it stays closed, so coolant circulates only inside the engine and warms up quickly. As coolant reaches the thermostat's rated temperature, often somewhere around 180 to 210 degrees F depending on the engine, it opens and lets coolant flow through the radiator to hold that temperature steady.

P0128 sets when the engine computer decides the engine took too long to warm up. It watches the coolant temperature sensor after a cold start and estimates how fast the engine should heat, based on things like airflow, run time and outside air temperature. If coolant stays below a set temperature for too long, the code is stored, often after two trips. Many makers only run this test when starting temperature and conditions are suitable. The code names the thermostat, but what it really reports is an engine running too cool.

## What are the symptoms of P0128?

- Check engine light on
- Temperature gauge reads lower than usual or takes a long time to rise
- Weak heat from the heater, especially in cold weather
- Worse fuel economy

## What causes P0128?

Ranked from most to least likely. Check them in this order: the cheap, common causes first.

1. **Thermostat stuck open or opening too early** (most common). A thermostat that sticks open, or opens at too low a temperature, lets coolant flow through the radiator all the time, so the engine warms slowly. It is a common wear item on older or high-mileage engines and is most noticeable in cold weather. An upper radiator hose that gets warm soon after a cold start is a strong sign.
2. **Faulty coolant temperature sensor** (common). A coolant temperature sensor that reads lower than the real temperature makes the engine look cold to the computer when it is not. Sensors drift with age, and a poor connection can skew the reading. Compare the scan tool reading with an infrared thermometer aimed at the thermostat housing once the engine is warm.
3. **Low coolant level** (less common). With low coolant, the temperature sensor may sit in an air pocket or steam instead of liquid and read wrong. Low coolant also means there is a leak that needs finding. Check the reservoir only when the engine is cold, look for wet spots or crusty residue, and top up with the specified coolant.
4. **Cooling fan running all the time** (less common). A stuck fan relay, a faulty fan control module or a wiring fault can keep the radiator fan running constantly. In cold weather, that extra airflow can stop the engine reaching normal temperature. Many cars run the fan with the AC or defroster on, so check with those off; a fan running on a cold engine needs attention.
5. **Very cold weather and short trips** (rare). Long idling or short trips in freezing weather can occasionally set P0128 on a thermostat that is already borderline, because the engine loses heat almost as fast as it makes it. It should not set on a healthy cooling system. If the code appears only in winter, the thermostat is still the most likely part to check.

## How do you diagnose P0128?

1. With the engine cold, check the coolant level in the reservoir.
2. Watch coolant temperature on a scan tool from a cold start; most engines should reach about 180-200 degrees F within 10-15 minutes of driving.
3. Feel the upper radiator hose carefully during warm-up; if it gets warm early, the thermostat is likely open.
4. Compare the scan tool reading with an infrared thermometer to check the coolant temperature sensor.
5. Check whether the radiator fan is running on a cold engine.

## How do you fix P0128, and what does it cost?

| Fix | Typical cost | What it involves |
| --- | --- | --- |
| Replace the thermostat | $150-$600 | Most cars are $150-$450; engines with a thermostat housing assembly or hard access cost more. |
| Replace the coolant temperature sensor | $100-$300 | When testing shows the sensor reads lower than the real temperature. |
| Top up or refill coolant | $50-$150 | Use the coolant type in the owner's manual, and find out why it was low. |

Full price breakdowns: [thermostat replacement cost](/cost/thermostat-replacement).

## Is it safe to drive with P0128?

> **Safe to drive.** Yes, it is safe to drive for now. The engine is running cool, not hot, but you will lose fuel economy and heater output until the thermostat is replaced.

## Will P0128 fail an emissions test?

P0128 keeps the check engine light on, so the car fails an OBD-II emissions test in most states. An engine that runs cool also uses more fuel and may keep the catalyst and oxygen sensor monitors from completing. After replacing the thermostat, clear the code and drive several days so the monitors can reset before testing.

## After the repair: clearing P0128

Clear the code after the repair. The next morning, start the engine cold and watch coolant temperature on a scan tool or the dash gauge: it should climb steadily and settle at normal operating temperature in the time your engine normally takes. Strong cabin heat and no pending code after several cold starts, ideally in cool weather, confirm the fix.

## How to prevent P0128

- Keep coolant at the correct level, and check it only when the engine is cold.
- Use the coolant type your owner's manual specifies and follow its change interval.
- Replace the thermostat with one of the correct temperature rating for your engine.
- Fit a new thermostat gasket or seal and bleed air from the system after coolant work.
- Watch the temperature gauge; a needle sitting lower than usual is an early warning.

## Codes often seen with P0128

- [P0217](/codes/p0217): Engine Coolant Over Temperature Condition
- [P0171](/codes/p0171): System Too Lean (Bank 1)
- [P0113](/codes/p0113): Intake Air Temperature Sensor 1 Circuit High (Bank 1)

## Frequently asked questions

### Can I drive with a P0128 code?

Yes, P0128 is not an urgent code. It means the engine runs too cool, which wastes fuel and reduces heater output but will not overheat it. Replace the thermostat at your convenience, ideally before winter, when weak heat and poor defrosting become a comfort and visibility problem.

### Is P0128 always the thermostat?

Usually, but not always. A faulty coolant temperature sensor, low coolant or a radiator fan that runs all the time can cause it too. Check the coolant level and compare the sensor reading with an infrared thermometer before replacing parts, because a thermostat job can cost several hundred dollars.

### How much does it cost to fix P0128?

Most thermostat replacements cost $150-$450 at an independent shop, and some engines with a plastic housing assembly or a hard-to-reach thermostat run up to about $600. A coolant temperature sensor is $100-$300, and topping up coolant is $50-$150. Quotes usually include new coolant to replace what is drained.

### Can I replace the thermostat myself?

Often yes, on engines where the thermostat housing is easy to reach. You need basic tools, the correct thermostat and gasket, and the right coolant. The key steps are draining safely, fitting the thermostat the right way round and bleeding all air from the system afterward. Work only on a cold engine.

### Can P0128 cause weak heat in the car?

Yes, a stuck-open thermostat is a common reason for weak heat. The heater core uses hot engine coolant to warm the cabin, so coolant that stays too cool gives lukewarm air, especially at highway speeds in cold weather. Low coolant can cause the same complaint and should be checked first.

### What temperature should my engine reach?

Most modern engines run somewhere around 195 to 220 degrees F once warm, but the right number varies by engine. The dash gauge usually sits near the middle. A scan tool shows the actual coolant temperature. If yours stays well below its usual reading, the thermostat is the first suspect.

### Can P0128 hurt my engine?

Not quickly, but running cold for a long time is not good for it. A cool engine burns fuel less completely, which can add carbon deposits and let moisture and fuel collect in the oil. Fuel economy also suffers. Replacing the thermostat within a few weeks avoids these slow, long-term effects.

### Why does P0128 only show up in winter?

Cold air exposes a weak thermostat. One that leaks a little coolant to the radiator may let the engine warm normally in summer, but in freezing weather that extra cooling keeps it below target. The code appearing each winter is a strong hint the thermostat is starting to fail.

### Should I use an OEM thermostat for P0128?

An original-equipment or reputable brand thermostat with the correct temperature rating is the safest choice. Some engines use a thermostat built into a housing or controlled electronically, and a low-quality part can set P0128 again. Match the part to your engine and replace the gasket or seal at the same time.

### Will a cooler thermostat improve performance?

No. Fitting a lower-temperature thermostat than the engine was designed for usually sets P0128, because the computer expects the engine to reach a certain temperature in a set time. It can also hurt fuel economy and heater output. Use the temperature rating your manufacturer specifies.

## Sources

- [SAE J2012: Diagnostic Trouble Code Definitions](https://www.sae.org/standards/content/j2012_201812/)
- [EPA: On-Board Diagnostics (OBD)](https://www.epa.gov/state-and-local-transportation/vehicle-emissions-board-diagnostics-obd)

## Other cooling codes

- [P0121 Throttle/Pedal Position Sensor/Switch "A" Circuit Range/Performance](https://diagxcar.com/codes/p0121)
- [P0122 Throttle/Pedal Position Sensor/Switch "A" Circuit Low](https://diagxcar.com/codes/p0122)
- [P0123 Throttle/Pedal Position Sensor/Switch "A" Circuit High](https://diagxcar.com/codes/p0123)
- [P0125 Insufficient Coolant Temperature for Closed Loop Fuel Control](https://diagxcar.com/codes/p0125)
- [P0130 O2 Sensor Circuit (Bank 1 Sensor 1)](https://diagxcar.com/codes/p0130)
- [P0131 O2 Sensor Circuit Low Voltage (Bank 1 Sensor 1)](https://diagxcar.com/codes/p0131)
- [P0132 O2 Sensor Circuit High Voltage (Bank 1 Sensor 1)](https://diagxcar.com/codes/p0132)
- [P0133 O2 Sensor Circuit Slow Response (Bank 1 Sensor 1)](https://diagxcar.com/codes/p0133)
- [P0134 O2 Sensor Circuit No Activity Detected (Bank 1 Sensor 1)](https://diagxcar.com/codes/p0134)
- [P0135 O2 Sensor Heater Circuit (Bank 1 Sensor 1)](https://diagxcar.com/codes/p0135)
- [P0113 Intake Air Temperature Sensor 1 Circuit High (Bank 1)](https://diagxcar.com/codes/p0113)
- [P0117 Engine Coolant Temperature Sensor 1 Circuit Low](https://diagxcar.com/codes/p0117)
- [P0118 Engine Coolant Temperature Sensor 1 Circuit High](https://diagxcar.com/codes/p0118)
- [P0217 Engine Coolant Over Temperature Condition](https://diagxcar.com/codes/p0217)

## Symptoms

- [Why is my car heater not working?](https://diagxcar.com/symptoms/car-heater-not-working)
- [Why is my car leaking coolant?](https://diagxcar.com/symptoms/car-leaking-coolant)
- [Why is my car getting bad gas mileage?](https://diagxcar.com/symptoms/poor-gas-mileage)
- [Why does my car smell sweet?](https://diagxcar.com/symptoms/sweet-smell-from-car)

## Repair costs

- [Thermostat replacement cost](https://diagxcar.com/cost/thermostat-replacement): $150-$450
- [Head gasket replacement cost](https://diagxcar.com/cost/head-gasket-replacement)
- [Water pump replacement cost](https://diagxcar.com/cost/water-pump-replacement)

## Terms explained

- [What is Coolant?](https://diagxcar.com/glossary/coolant)

---

Source page: https://diagxcar.com/codes/p0128
Updated: 2026-11-03
General information, not a substitute for a qualified mechanic.
