Merge from trunk to caofangkun