making final 3.4 commit in master (synced with 3.4_Release branch)

syncing 3.4 master with 3.4_Release