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:*, which asks what to call someone who knows they **are** in the group of people they criticize.</sub>