Our entire project is being held up because of one piece which is being handled by a single developer. When we did finally got the latest version of his code and started reviewing it, we found the code was horrendous! Its a relatively simply workflow, however the code is so complex that it's very difficult to step through and review/debug.
The developer responsible has a hard time accepting any kind of criticism, and feels he is more knowledgeable than others members of the team. It's difficult to even talk to him about his development work because it turns into "I know what I'm talking about and you're just wrong!" type of conversation.
A request has already been put in to replace this developer but management is not doing anything. This is probably because devs are in short supply where we are, and this is a corporation has a lot of office drama.
I'm just one of the developers, not the project manager, however I really want to see this project succeed.
What can I do in this sort of situation to try and keep the project on track?
Update: Lot of good answers. What I ended up doing is having a team meeting for code review of the problematic code, I included a manager. I went over the code and explained what was wrong, why it wouldnt' work and went over some general development education in a way that wasn't accusatory or hurtful but got the point across. Took 1 hour to rewrite it, and solve the issue. I think having the team with a manager really helped keep the anger/blame/attitude issues to a minimum. I treated it with a "Ok, who cares who did or didn't do what, let's just get it going." attitude. At the end of the day, the code got fixed, project is on it's way and no one got hurt.