|Do you know where your variables are?|
One thing which I think is good to clarify is, when you have a heated argument, what is your ego REALLY attached to? I find my own ego is rarely that closely attached to the code, but I still used to get in heated arguments. So what WAS my ego in? It was in the argument itself. I couldn't stand to lose. And yes, I have improved this, and haven't had such an argument in ages.
However, there is an important distinction here. When my ego was in the argument, and not the thing being argued over, then I generally DID absorb what they had to say, and considered it rationally latter, and often changed my own opinions/techniques/whatever to match. I'd often even KNOW that I was wrong part way through the initial argument, but my ego was so far invested in it that I'd refuse to admit it verbally.
So, what's my point? Just because somebody doesn't seem to be listening, and is arguing a seemingly stupid point to death doesn't mean that, on some level, they aren't listening. The best thing to do, if the argument gets heated, is to walk away, and then approach them about it the next day. If it turns into a heated argument again, THEN you know there is a problem (although a problem with WHOM is hard to say).