merging in changes from trunk 3554179717190d8bc5135c51f0a2bb5367bc7d0c