Merging missing commits:

ceaca33604026fc52d1c87aa02229449f5d89f76
48f598cc37523cd9a6fb629e54cd95703e4ad0c8
a807ffba1cc8c408156d059ce4ee1e8f084e2726