Merge from experimental branch.