Rachie,
You should try and take some time away from him, if you have somewhere to go for a few day's, let him see what it's like without you. And try telling him if he doesn't smarten up that your going to leave.
I bet he'll get his *** in gear then.