Merging most changes from unstable branch.