Me and my housemates all know this one guy, S. He owes me money since I stupidly lent it out to him ages ago. I've practically given up on trying to get it from him because I never get anywhere asking for it. Now tonight, S came around with one of my housemates and made himself welcome. While we were all talking, the subject of my job comes up and we were all joking around, then he says "38292939 is one of the least frightening people I know." and continues to make fun of me by mimicking me in a very unflattering way.

Suffice to say, I don't like the guy and I'm not sure how to handle him in social situations because all he really does is talk shit about me right infront of me and my housemates, right in my own home. My housemates just laugh whenever he says something. Honestly i'd swing for him but I don't think it's the right way to handle things. Any thoughts?

Tl;dr housemates' friend keeps coming round to my house and badmouthing me to my face, and it's pissing me off enough to want to attack him, but I don't think that's the best way to handle things. Any ideas?

Edit : Thanks for all the replies everyone, lots of you pointed out that my housemates are shit friends.. Which is 100% true. Worst part is, I've known for ages. Currently planning on moving out from this shitty situation in the (hopefully) near future. In the meantime, I'll hold my own if this guy starts up again.