My dh has been a tough one to train, you can't change a person but you can certainly teach them how to treat you. The way I did it was make him realize what it was that I did for him daily. It started when he said something unacceptable to me one day, while I was cooking him dinner. I took the dinner and threw it in the garbage,( I really felt bad about it ) but I just remembered the way he made me feel. Then I stopped doing his laundry, cooking , cleaning , and wasn't nearly in the mood for DTD. This went on for quite some time. He really began to see what he was taking for granted and changed his tune. He appreciated the things I did a lot more and realized that "if mama's not happy NOBODY is happy" (his words) and the funny thing is he tells everyone that now. We still have our days, everyone does. But he changed his tune and doesn't take me for granted anymore, which is what seems to be your oh's problem. I'm sorry you're going through this! And I also made it clear to him that calling me names wasn't working for him and was getting him no where. Name calling doesn't get the laundry done or get the house clean faster.