DS turned 4 in July. His behaviour, like most kids I guess, goes from good some days to pretty challenging on others... Our discipline with him I think on the whole is okay, we set boundaries, we really try not to shout (although sometimes do), we try to ignore bad behaviour as long as it's not too bad etc.
But the thing that just really really gets to me is the constant answering back if you ask him to stop doing something. He just goes on and on to the point where he is shouting "No Mummy, YOU are naughty" (even if I've not said his behaviour is naughty) or "No Mummy you will go to your room" or "You are not in charge, I am in charge". It's bad enough when he is like that at home but out and about, it's pretty embarrassing and if I saw a child speak like him I would probably think he wasn't very nice! On a lighter note, after I told him off for not sitting nicely to eat his breakfast today, he did mutter through tears today that he was going to turn me into a frog. 
The thing is as well is that he just doesn't listen, so normally I start off very gently asking him not to do something but by the third or fourth time I'm a little sterner (still not shouting usually though) and that is when he gets into his answering back "No Mummy YOU are naughty" routine.
He goes to pre-school 2 days a week (we're in Scotland so he doesn't start school until next Aug) and got a good report at the end of the summer term - no behavioural issues, listens well, good concentration etc. I think he is really well behaved there. I guess like most kids he saves his bad behaviour for home.
I just really want some tips on how to deal with the answering back - I was never in a million years allowed to get away with that in my childhood but probably got a smack on the bottom. 