This includes changes from commits: b714e4a809 ae5655b88b b3be636863 6dee307542
b714e4a809
ae5655b88b
b3be636863
6dee307542