Is there a word that describe a person who doesn't "practice what they preach"? Basically, is there a synonym for "hypocrite" that carries less pejorative connotations? 

For example, let's say a friend of mine says he is a Christian. Yet he engages in behaviors considered sins by the Bible, making him a hypocrite. And I would like to tell him I think he is a hypocrite. 

What would be a good word to use here, so my criticism seems constructive rather than offensive?

---

*  I tried using a [thesaurus][1], but the synonyms that came up were even worse (ie: they are *more* offensive than "hypocrite").

* *Related (but different) question: http://english.stackexchange.com/questions/6961/alternatives-to-hypocrite*, which asks what to call someone who knows they **are** in the group of people they criticize.</sub>


  [1]: http://thesaurus.com/browse/hypocrite