<human>: Can you condense the text into a few key points?

I used to date this guy all throughout college (let's call him Bill). We knew each other in undergrad, but didn't start dating until grad school. Bill was an awesome boyfriend while we were in grad school. He was very caring, loving, and affectionate. We dated for about 3 years before breaking up. He dumped me, and to be honest I took it pretty hard. I thought we were going to get married and spend the rest of our lives together. 

We've been broken up for about a year now, but Bill and I are still good friends. There was no real distance between us after we broke up. We were good friends throughout undergrad and before we even started dating. I can't really see my life without him- he truly is one person that I can tell everything to and confide in.

The problem is that Bill is very negative. He will say mean things to me and then justify it by saying he's just being honest and that if I don't want him to be honest, he won't say anything at all. For example, the other day we were at Whole Foods and I accidentally dropped the eggs he had just bought. He told me that I was "stupid" and "fucking retarded"  and that I can't do simple tasks like putting groceries away in a car. I was visibly hurt, and even asked him if he really thought I was dumb? He replied that he does, and is being honest and that if I want someone to sugar coat it for me, he's not that guy.  This is an example of many of the behaviors he displays when I say that he is condescending and negative. 

Am I being too sensitive? He never treated me like this when we were dating in grad school. If he did, it was few and far between and not nearly to the degree of this.
<bot>: My ex calls me stupid and dumb when I make mistakes. He didn't treat me like this when we were dating. Am I being overly sensitive? Am I justified in comparing how he is now to when we were together?