Merge from Haoji's repository.