Out of the blue my Honda coughed and bucked whenever I tried to accelerate above 2700 rpm! The check-engine-light came on and gave a P2647 error code. This post walks step-by-step through the easy fix. I hope you find this helpful!


The vehicle I am working on here is a 2004 Honda Accord (4-cyl). This repair also applies to 2002, 2003, 2004, 2005, 2006, and 2007 Honda Accords, as well as other Honda’s using the i-VTEC engine (Honda Element, Honda Civic, Honda CRV), with perhaps some variations depending on the vehicle. This issue can also produce a P2646 error code.

If you purchase something through one of our affiliate links we may earn a commission, at no extra cost to you.

I was heading off to work one day in the 2004 Honda Accord, and about a mile from my house I tried to accelerate. As soon as the tachometer touched 2700 rpm, the car bucked and the check engine light (CEL) came on!


Luckily I had my trusty engine code reader handy, so I pulled over and read the error code.


The error was P2647. A related error is P2646.

  • P2647 – Rocker Arm Actuator Control System Stuck On
  • P2646 – Rocker Arm Actuator System Performance/Stuck Off Bank 1

These errors relate to the VTEC solenoid. This is a really interesting mechanism! Read more details on the VTEC system.

To summarize, these cars have a variable timing system, meaning that at higher RPMs and engine loading, the computer throws a switch and changes the valve timing in order to give you better acceleration. The VTEC solenoid is that switch; it diverts oil from the low-lift cam lobe to the high-lift cam lobe.

If the VTEC doesn’t get the signal, is clogged, or leaks then problems occur. The vehicle goes into “limp mode,” meaning that you cannot accelerate beyond about 2700 RPM or so.

Note 1: One thing you should check before jumping into a repair is your oil level. Sometimes low oil can cause issues with the VTEC system, so be sure to check your oil level first. If the oil is dirty or hasn’t been changed in a while, try changing the oil as well.

Note 2: I have also had success performing an engine flush to clear the P2647 code. It is a relatively inexpensive method to help clear sludge from your engine and has been known to eliminate the P2647 issue.

Note 3: Are you using the correct and recommended oil for your Honda Accord? Using oil that is too thick or too thin can cause issues with the VTEC system which relies on oil passing through small passages! Use a high quality synthetic oil to reduce or eliminate the P2647 issues. I recommend Mobil1 0W-20 or Mobil1 5W-20 High-Mileage for Honda Accords.

The following are common symptoms:

  • No signal getting to the VTEC – Vehicle feels ‘gutless’ at high RPM
  • Clogged VTEC – Vehicle stutters or stalls at lower RPMs, esp when engine is warm
  • Leaking VTEC – Vehicle bucks/jerks when accelerating above about 2500-3000 RPM

The problem I had was the last one. The following is the repair I did to fix the problem.

Tools and supplies used:

VTEC Solenoids for Other Vehicles:

Instructions for Replacing the VTEC Solenoid

Here is the aftermarket VTEC solenoid I purchased and installed. It came with a new gasket as well.

Depending on your situation, it is possible that only the gasket is shot (completely flattened, cracked, leaking, etc…). If this is the case for you, you might try just replacing the gasket first to see if that fixes the problem. The following instructions would still mostly apply.


Since the solenoid has electrical connections, it is a good idea to disconnect the negative battery terminal so nothing gets shorted out.


Mine uses a 10mm socket to remove.


The VTEC solenoid is located at the back of the engine on the left side. In the picture below, it is about 8 inches behind the orange oil dipstick.


Here is the view from behind. You can see the VTEC near the center of this image with a bunch of wires going to it.


Here is a better view.


To remove the unit, we will unplug the 2 connectors at the top, then remove the three (3) 10mm bolts shown below.

Note: notice how the solenoid is all oily, particularly at the bottom. This is a good clue and suggests that it was leaking oil.


I recommend disconnecting the electrical connections first. At the top of the solenoid, press the plastic tab on the connector, then pull up to release the first connector.


Do the same for the next connector.


The wiring harness is attached to the solenoid heat shield with a plastic zip-tie plug connector. I used a flat-bladed screwdriver to wedge it out of its hole. It slightly damaged the plastic connector in the process, but not too bad.


Next, use a 10mm socket to remove the 3 bolts holding the VTEC solenoid in place. I also used a short pipe as a cheater bar (not shown) to get these loose, as they were fairly tight; it can be helpful to avoid knurled knuckles…

Note: When the solenoid is removed, about a cup of oil will leak out. Put a catch pan of some sort underneath it so that the oil is contained.


After the 3 bolts are removed, give the VTEC solenoid a twist, and it will come off. Some oil will drain out, so be ready for that with a drain pan underneath.


Here is the old and new ones, side by side.


Notice how the gasket on the old one is completely compressed.


Here I picked at it and it just cracked away. It was due for replacement. Also, notice that the screen is pretty clean, so I don’t think clogging was my problem.

Here’s the link if you want to buy just the gasket. (The filter screen comes with the gasket.)


Re-use the old bolts. Fit them into the new solenoid body.


Here is a view of the mating surface. Use a clean rag to wipe off any residue.


Here is the new VTEC solenoid with the bolts installed and ready to be put in.


Line up the solenoid and the bolts.


Get each bolt started and snug it up a bit with the 10mm socket.

DON’T GO OVERBOARD on tightening these bolts! They can strip out…

We will torque these in a subsequent step, and it is surprising how little these need to be snugged up in order to seal, but not crush, the gasket.


Next, use a torque wrench to tighten the bolts to 8.7 ft-lbs (104 in-lbs). Go from one bolt to the next, tighten each one a little at a time, in order to get an even seal for the gasket.


Next, fit the plastic connector for the wiring harness into the hole in the heat shield of the new solenoid.


Plug in the electrical connections.

A common problem with these electrical connections is that due to the way they are oriented, it is easy for water to get into the connector and just sit there, causing corrosion build up. If your electrical connections were corroded, put some dielectric grease into the plug before plugging in the connectors. This will help to keep water out in the future.

Make sure to press them in far enough until you hear or feel a small clip indicating that it is fully seated.


Repeat for the other electrical connector. They have different shapes, so it is difficult to get them in the wrong spot!


Here is the new VTEC solenoid installed.


Once everything is put together, then go ahead and re-connect the negative battery terminal and snug it up.


The final step is to check the oil level and replace any oil that may have leaked out in the process.

I hope this helped you out! If so, what were the symptoms you were experiencing? Let us know in the comments section below.

Tools and supplies used: