merge from gcc 
4 files changed