integrating trunk to hibernate4 branch. Probably no real changes.