Merged changes from stable branch up to 2.3.23.